概述
DjangoREST框架是一个强大而灵活的构建WebAPI的工具包
您可能希望使用睡觉框架的一些原因:
- 这个Web browsable API对您的开发人员来说是一次巨大的可用性胜利
- Authentication policies包括以下内容的可选程序包OAuth1a和OAuth2
- Serialization这两个都支持ORM和non-ORM数据源
- 自始至终都可自定义-只需使用regular function-based views如果您不需要morepowerfulfeatures
- Extensive documentation,以及great community support
有一个用于测试目的的实时示例API,available here
下面:来自可浏览API的屏幕截图
要求
- Python(3.5、3.6、3.7、3.8、3.9)
- Django(2.2,3.0,3.1,3.2)
我们强烈推荐并且仅官方支持每个Python和Django系列的最新补丁版本
安装
使用以下方式安装pip
pip install djangorestframework
添加'rest_framework'
致您的INSTALLED_APPS
设置
INSTALLED_APPS = [
...
'rest_framework',
]
示例
让我们来看一个使用睡觉框架构建用于访问用户和组的简单模型支持的应用编程接口的快速示例
像这样启动一个新项目
pip install django
pip install djangorestframework
django-admin startproject example .
./manage.py migrate
./manage.py createsuperuser
现在编辑example/urls.py
项目中的模块:
from django.urls import path, include
from django.contrib.auth.models import User
from rest_framework import serializers, viewsets, routers
# 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
控件,您还可以在系统中添加、创建和删除用户
您还可以使用命令行工具与API交互,例如curl
例如,要列出用户端点,请执行以下操作:
$ 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": "admin@example.com",
"is_staff": true,
}
]
或创建新用户:
$ curl -X POST -d username=new -d email=new@example.com -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": "new@example.com",
"is_staff": false,
}
文档和支持
有关该项目的完整文档,请访问https://www.django-rest-framework.org/
有关问题和支持,请使用REST framework discussion group,或#restframework
关于Freenode IRC
您可能还想要follow the author on Twitter