Django REST Frameworkチュートリアル
自己紹介
プログラミング講師の飼鳥晴康(@hathle)です。
エンジニア歴は10年以上で海外(カナダ)就労も経験しています。
カナダでは、映画を作っていました。
現在は、独立して、Python、Djangoをメインにオンラインでマンツーマンレッスンをしています。
お問い合わせなどは、Twitter(@hathle)からお願いいたします。
プログラミングは人生を変えることができます。
目標に向かって、一緒に頑張っていきましょう!!
はじめに
Django REST Frameworkを使って、APIを実装しましょう。
バックエンドはDjango、フロントエンドはVue.jsを使用します。
Zenn
Zennのチュートリアルは見やすくなっています。
目標
DjangoでAPIを実装する方法を学習します。
Djangoを使用して、求人情報APIを作ります。
機能
・求人情報API
・求人情報詳細API
前提知識
Django REST Frameworkを始める前に、Djangoは学習しておいて下さい。
・HTML
・CSS
・JavaScript
・Django
・Vue.js
ブログ構成チュートリアルでDjangoを詳しく説明していますので、まだ実施していない方は、実施して下さい。
Vue.jsの知識もあると、スムーズにすすめることができます。
では、始めて行きましょう!!
Django REST Frameworkとは?
Django REST Frameworkとは、DjangoでAPIを開発するライブラリです。
RESTfulなAPI開発を標準としてサポートしています。
APIの動作を確認するWebコンソールが使用できるので、簡単にAPIパラメータの確認ができます。
RESTful API(REST API)とは?
RESTful API(REST API)とは、Webシステムを外部から利用するためのAPIの種類の一つで、RESTと呼ばれる設計に従ったインターフェースです。
メソッド
GET、POST、PUT、DELETE等メソッドを使うことで、一貫性のあるリクエストで開発が楽になります。
データを取得、作成、更新、削除するのか一目でわかります。
・GET:取得
・POST:作成
・PUT/PATCH:更新
・DELETE:削除
ステータスコード
HTTPメソッドを利用したAPIなので、下記のステータスコードが返ってくるように設計します。
・OK:200
・Created:201
・Bad Request:400
・Unauthorized:401
・Forbidden:403
・Not Found:404
・Method Not Allowed:405
ステータスコードグループ
ステータスコードはグループになっています。
・1xx:情報
・2xx:成功
・3xx:リダイレクト
・4xx:クライアントエラー
・5xx:サーバーエラー
API例
・/posts/:GET - すべてのリストを取得 200 OK
・/posts/1/:GET - 特定のpostを取得 200 OK
・/posts/2/ (存在しない):GET - エラーが発生 404 Not Found
・/posts/:POST - postを作成 201 Created
・/posts/3:PUT - 特定のpostを更新 200 OK
・/posts/4:DELETE - 特定のpostを削除 204 Not Content
Django REST Framework
Django REST Frameworkは、今までのDjangoにserializer.pyが追加されます。
serializer.pyはJson形式に変換する役割をします。
準備
開発の準備をします。
GitHub準備
GitHubのリポジトリを作成します。
.gitignore作成
記述されたファイルは、git管理下から除外されてコミットされなくなります。
.gitignore
myvenv
db.sqlite3
.vscode
__pycache__
*.pyc
.DS_Store
仮想環境の作成
myvenvという名前で仮想環境を構築します。
$ python3 -m venv myvenv
仮想環境の実行
sourceコマンドで仮想環境を実行します。
ターミナルを再起動したときなど、必ずこのコマンドを実行して、仮想環境に入って下さい。
仮想環境に入ると、ターミナルに(myvenv)という印が付きます。
これがあると、仮想環境に入っていることになります。
$ source myvenv/bin/activate
requirements.txt作成
開発で必要なパッケージを記載します。
requirements.txt
Django==3.1.4
djangorestframework~=3.11.0
パッケージのインストール
このコマンドで、requirements.txtに記載されたパッケージがインストールされます。
(myvenv) ~$ pip3 install -r requirements.txt
これで、Djangoで開発する準備ができました。
プロジェクト作成
プロジェクトを作成します。
最後のドットはディレクトリ直下にプロジェクトを作成するという意味です。
(myvenv) ~$ django-admin startproject job_board .
環境設定変更
settings.pyを修正してプロジェクトの設定を変更します。
job_board/settings.py
ALLOWED_HOSTS = ['*']
LANGUAGE_CODE = 'ja'
TIME_ZONE = 'Asia/Tokyo'
データベースのセットアップ
migrateコマンドをすることでデータベースがセットアップされます。
(myvenv) ~$ python3 manage.py migrate
Webサーバーを起動する
Djangoが起動できるか確認しましょう。
(myvenv) ~$ python3 manage.py runserver
URLにアクセスすると、Webページが表示されます。
Webサーバーを停止するには、Ctrl + Cを同時に押すと停止します。
アプリケーション作成
アプリケーションを作成してきます。
今回は、求人情報APIを構築するので、名前はjobsにします。
(myvenv) ~$ python3 manage.py startapp jobs
管理ユーザー作成
管理ユーザーを作成しておきましょう。
(myvenv) ~$ python3 manage.py createsuperuser
ユーザー名、メールアドレス、パスワードを入力します。
パスワード
パスワードは見えないので、間違えずに入力して下さい。
アプリケーションを使えるように設定
アプリケーションを使えるようにするには、プロジェクト設定にアプリケーションを追加する必要があります。
APIを構築するにはDjango REST Frameworkを使用するので、同時に追加します。
INSTALLED_APPSに追加します。
job_board/settings.py
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'rest_framework', # 追加
'jobs', # 追加
]
ここから先は
¥ 500
最後まで読んでいただきありがとうございました😃 サポートは、プログラミングチュートリアル開発の手助けとなります。 シェアもして頂くと嬉しいです。 Twitterのフォローもお願いします。 https://twitter.com/hathle