開発環境
- OS:
macOS Big Sur v11.5.2 - Python:
Python 3.9.6 - Django:
3.2.5
環境構築
python3系をインストール
pythonのインストールはYouTubeの動画で調べるのがおすすめ
書籍管理システム使用に必要なモジュールをインストール
#Django本体
$ pip install django
#CORS対策モジュール
$ pip install django-cors-headers
#django-filter
$ pip install django-filter
#RESTフレームワーク。
$ pip install djangorestframework
書籍管理システム本体のインストール
#このプロジェクトを自分のPCにインストール
$ git clone https://github.com/maropook/book_management.git
#book_managementディレクトリに移動
$ cd book_management
Djangoの設定
#migrationファイルからデータベースを作成
$ python manage.py migrate
書籍管理システムを起動
# 開発サーバーを起動
$ python manage.py runserver
http://localhost:8000/book/book/
DRFが起動しているか確認
http://localhost:8000/rakuten/
書籍管理システムの利用
API実装
Django REST Frameworkを使って爆速でAPIを実装する
この記事を参考に,楽天bookAPIから取得したいカラムでデータベースを作成した.
CORS設定
DRFを使って、APIエンドポイントをフロントエンドから叩く場合にはCORSの設定が必要
【drf】django-cors-headersを使ってCORS設定を行う
動作確認
# 開発サーバーを起動
$ python manage.py runserver
http://localhost:8000/book/book/
DRFが起動しているか確認
全てCDNから取得してvue.jsをaxiosを使用しています.
REST APIを作成するには最低限以下の3つを定義する必要があります。
- Serializer
- ViewSet
- URL pattern
ざっくり言うと、Serializerは「Modelをどのようにシリアライズ(・デシリアライズ)するかを決めるためのもの」、ViewSetは「APIのクエリーをどう解釈するかを決めるためのもの」、そしてURL Patternは「DjangoにURLのパターンを教えるためのもの」です。これらをAPI化したいModelに対してそれぞれ定義していきます。
最低限のAPI実装をしたい時には結構手間に感じるかもしれませんが、このように分割することによって高い拡張性とコードの見通しのよさを実現しています。