見出し画像

Django REST Frameworkチュートリアル

自己紹介

プログラミング講師の飼鳥晴康(@hathle)です。

エンジニア歴は10年以上で海外(カナダ)就労も経験しています。

カナダでは、映画を作っていました。

現在は、独立して、Python、Djangoをメインにオンラインでマンツーマンレッスンをしています。

お問い合わせなどは、Twitter(@hathle)からお願いいたします。

プログラミングは人生を変えることができます。

目標に向かって、一緒に頑張っていきましょう!!

はじめに

Django REST Frameworkを使って、APIを実装しましょう。

バックエンドはDjango、フロントエンドはVue.jsを使用します。

Zenn

Zennのチュートリアルは見やすくなっています。

目標

DjangoでAPIを実装する方法を学習します。

Djangoを使用して、求人情報APIを作ります。

画像20

機能

・求人情報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と呼ばれる設計に従ったインターフェースです。

画像19

メソッド

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形式に変換する役割をします。

画像19

準備

開発の準備をします。

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ページが表示されます。

http://127.0.0.1:8000/

Webサーバーを停止するには、Ctrl + Cを同時に押すと停止します。

画像19

アプリケーション作成

アプリケーションを作成してきます。

今回は、求人情報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', # 追加
]

ここから先は

28,677字 / 13画像

¥ 500

最後まで読んでいただきありがとうございました😃 サポートは、プログラミングチュートリアル開発の手助けとなります。 シェアもして頂くと嬉しいです。 Twitterのフォローもお願いします。 https://twitter.com/hathle