很棒的可浏览 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
。
请参阅安全政策。