ページ内ナビ
概要
Django REST frameworkはDjango向けのWeb API toolkitです。serializer、authentication/permission、generic view、ViewSet、router、browsable APIを組み合わせ、Django ORMまたは非ORM data sourceからREST APIを構築できます。
特徴と向いている用途
公式資料に基づく紹介・実機未検証 · 内容確認日:
主な特徴
serializerでDjango modelや任意dataをAPI representationへ変換する
SerializerとModelSerializerで入力validationとresponse serializationを定義できます。Django ORMを使うmodel-backed APIだけでなく、通常のSerializerで非ORM data sourceも扱えます。
出典:[2]
ViewSet・router・authentication/permissionでAPI endpointを組み立てる
ViewSetとrouterからURL routingを生成でき、function-based viewやgeneric viewまで必要な抽象度を選択できます。Django authentication/permissionと連携し、browsable APIで開発中の操作確認も行えます。
出典:[2]
向いている用途
既存Django applicationへ型のあるREST API layerを追加したい場合に向く
Django model・auth・admin等を使っているapplicationで、serializerとpermissionを共通化しながらJSON APIを追加したいbackendに適します。
出典:[2]
導入前の確認
参考にした公式資料
- [1]encode/django-rest-framework — GitHub repository(2026-10-06)
- [2]Django REST framework 3.18.1 — README(2026-10-06)
- [3]Django REST framework 3.18.1 — pyproject.toml(2026-10-06)
- [4]Django REST framework 3.18.1 release(2026-10-06)
- [5]Django REST framework BSD-3-Clause license(2026-10-06)
編集部からの補足
Django model・authを活かしてAPIを作る場合に強力ですが、ViewSet/Routerを使うかgeneric viewで明示するかをAPIの複雑さに合わせて選ぶと保守しやすくなります。
3ステップで試す
- 1
DRF 3.18.1と対応Djangoを導入する
DRFをversion固定し、公式support範囲のDjango 5.2〜6.1を導入します。
python -m pip install "djangorestframework==3.18.1" "Django>=5.2,<6.2" - 2
最小Django projectとAPI endpointを作る
rest_frameworkを有効化し、DB modelを使わないread-onlyな最小GET endpointを作ります。
django-admin startproject example . && python - <<'PY' from pathlib import Path p = Path('example/settings.py') s = p.read_text() s = s.replace("INSTALLED_APPS = [", "INSTALLED_APPS = [\n 'rest_framework',") p.write_text(s) Path('example/urls.py').write_text('''from django.urls import path from rest_framework.decorators import api_view from rest_framework.response import Response @api_view(["GET"]) def hello(request): return Response({"hello": "drf"}) urlpatterns = [path("", hello)] ''') PY - 3
development serverでAPIを確認する
Django development serverをlocalhostで起動し、JSON responseを確認します。本番では専用deployment構成を使用してください。
python manage.py runserver 127.0.0.1:8000 # 別端末で: curl -fsS http://127.0.0.1:8000/
成長
成長の推移 · 直近30日
30,201 Stars
推移データを蓄積中です。
Built with
カテゴリとタグ
カテゴリ
GitHubデータ
GitHubのデータGitHubの詳細データを見る
GitHub Topics
- api
- django
- python
- rest
- Stars
- 30,201
- Forks
- 7,086
- Watchers
- 604
- Open Issues
- 49
- Contributors
- 386
- 所有者種別
- Organization
- 主要言語
- Python
- ライセンス
- BSD-3-Clause
- リポジトリ最終更新
- 2026/10/05
関連情報
関連記事を投稿するこのOSSの使い方や活用事例をMarkdownで投稿できます。管理者が承認した後に公開されます。
あわせて探訪
- aiohttp16,569 Stars
共通タグ 3件 · 共通カテゴリ 2件 · 同じ言語
asyncioでHTTP client・server・WebSocketを構築するPython framework
Python - Starlette12,655 Stars
共通タグ 3件 · 共通カテゴリ 2件 · 同じ言語
ASGIの小さな部品を組み合わせて非同期Webサービスを構築するPythonフレームワーク
Python - Django91,323 Stars
共通タグ 3件 · 共通カテゴリ 1件 · 同じ言語
ORM・管理画面・URL routing・view・templateを統合したPython Web framework
Python - Flask74,897 Stars
共通タグ 3件 · 共通カテゴリ 1件 · 同じ言語
PythonでURLルーティング・request処理・Jinja templateを組み立てる軽量WSGIフレームワーク
Python - Fiber40,204 Stars
共通タグ 2件 · 共通カテゴリ 2件
fasthttp上でExpress風Routing・Binding・MiddlewareをまとめるGo Web Framework
Go - ASP.NET Core38,465 Stars
共通タグ 2件 · 共通カテゴリ 2件
cross-platform .NET runtime上でWeb app・HTTP API・mobile backendを構築するmodular web framework
C#
情報の誤りを報告
掲載内容に誤りや古い情報があればお知らせください。