Django Rest Frameworkは Django でWeb API を構築するツールです。
特徴
- OAuth1aおよびOAuth2のパッケージによる認証ポリシー
- ORM/非ORMデータソースの両方をサポートするシリアル化
- 徹底的にカスタマイズ可能
- ドキュメントとコミュニティサポートが充実
- 世界の大手企業に採用されている
Djangoとの違い
Djangoの機能と同様の部分が多いので、Djangoの知識のある場合は比較的楽に使うことができます。API用に使うものなのでDjangoのテンプレートがなくなって、その代わりにJSON形式でデータを提供するSerializerが使われます。
項目 | 違い |
Model | Djangoと同様 |
View | Djangoと同様(事前処理も担う) |
URLconf | DJangoと同様 |
Serializer | JSONとモデルのデータのやり取りを担う |
使用条件
Python 3.6以降 および Django 3.0以降
(オプションパッケージ)
PyYAML, uritemplate, Markdown, Pygments, django-filter, django-gurdian
DRFのインストール
pip install djangorestframework
pip install markdown # Markdown support for the browsable API.
pip install django-filter # Filtering support
Setting.pyの設定
DRFのインストール後に、プロジェクトのsettings.pyのINSTALLED_APPSに追記が必要です。
INSTALLED_APPS = [
...
'rest_framework',
]
urls.pyの設定
(参考)
urlpatterns = [
...
path('api-auth/', include('rest_framework.urls'))
]
pipでインストール可能なバージョンを調べる方法
pip install djangorestframework== とバージョンを指定しないとエラーになりますが、そのエラーメッセージでインストールできるバージョンが表示されます。
$ pip install djangorestframework==
(結果)
Defaulting to user installation because normal site-packages is not writeable
ERROR: Could not find a version that satisfies the requirement djangorestframework== (from versions: 0.1, 0.1.1, 0.2.0, 0.2.1, 0.2.2, 0.2.3, 0.2.4, 0.3.0, 0.3.1, 0.3.2, 0.3.3, 0.4.0, 2.0.0, 2.0.1, 2.0.2, 2.1.0, 2.1.1, 2.1.2, 2.1.3, 2.1.4, 2.1.5, 2.1.6, 2.1.7, 2.1.8, 2.1.9, 2.1.10, 2.1.11, 2.1.12, 2.1.13, 2.1.14, 2.1.15, 2.1.16, 2.1.17, 2.2.0, 2.2.1, 2.2.2, 2.2.3, 2.2.4, 2.2.5, 2.2.6, 2.2.7, 2.3.0, 2.3.1, 2.3.2, 2.3.3, 2.3.4, 2.3.5, 2.3.6, 2.3.7, 2.3.8, 2.3.9, 2.3.10, 2.3.11, 2.3.12, 2.3.13, 2.3.14, 2.4.0, 2.4.1, 2.4.2, 2.4.3, 2.4.4, 2.4.5, 2.4.6, 2.4.8, 3.0.0, 3.0.1, 3.0.2, 3.0.3, 3.0.4, 3.0.5, 3.1.0, 3.1.1, 3.1.2, 3.1.3, 3.2.0, 3.2.1, 3.2.2, 3.2.3, 3.2.4, 3.2.5, 3.3.0, 3.3.1, 3.3.2, 3.3.3, 3.4.0, 3.4.1, 3.4.2, 3.4.3, 3.4.4, 3.4.5, 3.4.6, 3.4.7, 3.5.0, 3.5.1, 3.5.2, 3.5.3, 3.5.4, 3.6.0, 3.6.1, 3.6.2, 3.6.3, 3.6.4, 3.7.0, 3.7.1, 3.7.2, 3.7.3, 3.7.4, 3.7.5, 3.7.6, 3.7.7, 3.8.0, 3.8.1, 3.8.2, 3.9.0, 3.9.1, 3.9.2, 3.9.3, 3.9.4, 3.10.0, 3.10.1, 3.10.2, 3.10.3, 3.11.0, 3.11.1, 3.11.2, 3.12.0, 3.12.1, 3.12.2, 3.12.3, 3.12.4, 3.13.0, 3.13.1, 3.14.0)
ERROR: No matching distribution found for djangorestframework==