很棒的可瀏覽 Web API。
此專案的完整文件可在 https://www.django-rest-framework.org/ 上找到。
REST 框架是一個由協作資助的計畫。如果您在商業上使用 REST 框架,我們強烈鼓勵您透過註冊付費方案來投資其持續開發。
最初的目標是提供一個關於 REST 框架的單一全職職位。每一次註冊都會對實現這一目標產生重大影響。
非常感謝我們所有出色的贊助商,特別是我們的高級支持者,Sentry、Stream、Spacinov、Retool、bit.io、PostHog、CryptAPI、FEZTO、Svix 和 Zuplo。
Django REST 框架是一個強大且靈活的工具包,用於建立 Web API。
您可能想要使用 REST 框架的一些原因:
下圖:來自可瀏覽 API 的螢幕截圖
我們強烈推薦並僅官方支援每個 Python 和 Django 系列的最新補丁版本。
使用pip
安裝...
pip install djangorestframework
將'rest_framework'
加入到您的INSTALLED_APPS
設定中。
INSTALLED_APPS = [
...
'rest_framework' ,
]
讓我們來看看使用 REST 框架建立簡單的模型支援的 API 以存取使用者和群組的快速範例。
像這樣啟動一個新專案...
pip install django
pip install djangorestframework
django-admin startproject example .
./manage.py migrate
./manage.py createsuperuser
現在編輯專案中的example/urls.py
模組:
from django . contrib . auth . models import User
from django . urls import include , path
from rest_framework import routers , serializers , viewsets
# Serializers define the API representation.
class UserSerializer ( serializers . HyperlinkedModelSerializer ):
class Meta :
model = User
fields = [ 'url' , 'username' , 'email' , 'is_staff' ]
# ViewSets define the view behavior.
class UserViewSet ( viewsets . ModelViewSet ):
queryset = User . objects . all ()
serializer_class = UserSerializer
# Routers provide a way of automatically determining the URL conf.
router = routers . DefaultRouter ()
router . register ( r'users' , UserViewSet )
# Wire up our API using automatic URL routing.
# Additionally, we include login URLs for the browsable API.
urlpatterns = [
path ( '' , include ( router . urls )),
path ( 'api-auth/' , include ( 'rest_framework.urls' , namespace = 'rest_framework' )),
]
我們也想為我們的 API 配置一些設定。
將以下內容加入您的settings.py
模組中:
INSTALLED_APPS = [
... # Make sure to include the default installed apps here.
'rest_framework' ,
]
REST_FRAMEWORK = {
# Use Django's standard `django.contrib.auth` permissions,
# or allow read-only access for unauthenticated users.
'DEFAULT_PERMISSION_CLASSES' : [
'rest_framework.permissions.DjangoModelPermissionsOrAnonReadOnly' ,
]
}
就這樣,我們完成了!
./manage.py runserver
現在,您可以在瀏覽器中開啟 API http://127.0.0.1:8000/
,並查看新的「使用者」API。如果您使用右上角的Login
控件,您也可以在系統中新增、建立和刪除使用者。
您也可以使用命令列工具(例如curl
與API互動。例如,要列出使用者端點:
$ curl -H 'Accept: application/json; indent=4' -u admin:password http://127.0.0.1:8000/users/
[
{
"url": "http://127.0.0.1:8000/users/1/",
"username": "admin",
"email": "[email protected]",
"is_staff": true,
}
]
或建立一個新使用者:
$ curl -X POST -d username=new -d [email protected] -d is_staff=false -H 'Accept: application/json; indent=4' -u admin:password http://127.0.0.1:8000/users/
{
"url": "http://127.0.0.1:8000/users/2/",
"username": "new",
"email": "[email protected]",
"is_staff": false,
}
此專案的完整文件可在 https://www.django-rest-framework.org/ 上找到。
如需問題和支持,請使用 REST 框架討論群組,或 libera.chat IRC 上的#restframework
。
請參閱安全政策。