🐍

忙しい人のためのDjango + DjangoRestFramework

2022/12/24に公開

概要

Django

Webアプリを作るPythonライブラリ

機能一覧:https://docs.djangoproject.com/en/4.1/intro/overview/

Django REST Framework (DRF)

DjangoにREST APIを作る機能を追加するライブラリ

DRF機能概要:https://www.django-rest-framework.org/
REST APIとは:https://learn.microsoft.com/ja-jp/azure/architecture/best-practices/api-design

Django + DRFでREST APIを作成することができる。

Django + DRFの全体像

全体像は図の通り。

perspective

  1. HTTPサーバーがHTTPリクエストを受ける
  2. URLconfに従い、リクエストのURLに対応するViewRequestオブジェクトを渡す
  3. Viewがリクエストに付いた認証情報をPermissionオブジェクトに渡し、レスポンスを返して良いかを判定する
  4. SerializerRequestに格納されたdict形式のJSONデータをPython objectに変換する。
  5. Viewで生成したPython objectを処理し、必要に応じてModel経由でDBのデータを読み書きして、返り値を作成。
  6. Serializerで返り値をSerializerでJSONに変換してHTTPサーバーに返す。
  7. HTTPサーバーがクライアントにHTTPレスポンスを返す。

構成要素のView, Model, Serializer, urlpatternsについては別記事で解説する。

https://zenn.dev/geb/articles/221103_django_model_summarize

https://zenn.dev/geb/articles/221224_django_serializer_summarize

Discussion