为模型自动生成API。公开核心django功能。根据现有表单验证。
djangorestframework-extras的Python项目详细描述
drfe为任何django模型生成restful api。它建立在django rest框架之上。
Prerequisite
- pip安装djangorestframework
- 将rest_framework添加到settings.py中的INSTALLED_APPS设置中。
Installation
- 在python路径中安装或添加djangorestframework-extras。
- 将rest_framework_extras添加到settings.py中的INSTALLED_APPS设置中。
Feature List
- 为所有已知应用程序生成默认序列化程序和视图集以创建restful api。
- 向django rest框架路由器注册应用程序已知的所有视图集。
- 默认用户、人员用户和超级用户的自定义序列化程序和权限。 < LIVE FuffMIXIN将验证委托给一个正常的Django表单。
- 自定义超链接字段和序列化程序,HyperlinkedRelatedField和HyperlinkedModelSerializer
Usage
用户权限和自定义用户视图集
djangorestframework-extras为默认用户、人员用户和超级用户提供自定义视图集UsersViewSet以及序列化程序和权限。
通过默认路由器注册用户视图集:
from rest_framework_extras.users.viewsets import UsersViewSet router = routers.DefaultRouter() router.register(r'users', UsersViewSet, 'user')
发现和注册视图集
通过将以下内容添加到urls.py:
from rest_framework import routers import rest_framework_extras router = routers.DefaultRouter() rest_framework_extras.discover(router) rest_framework_extras.register(router) urlpatterns = [ url(r"^api/(?P<version>(v1))/", include(router.urls)) ]
逐行遍历代码:
- 第1行和第3行:router和defaultrouter类自动连接视图和url,并创建api根。
- 第5行:新的discover函数生成默认的序列化器和视图集。此函数应在正常注册之前运行。
- 第6行:新的register函数注册所有的视图集(包括usersviewset),覆盖所有已经用相同名称注册的项。
- 第9行:通过包含router.url来定义url。
可用设置
REST_FRAMEWORK_EXTRAS
黑名单:黑名单模型的字典。默认情况下,下列型号被列入黑名单:
"REST_FRAMEWORK_EXTRAS": { "blacklist": { "sessions-session": {}, "admin-logentry": {} }, "authentication-classes": (SessionAuthentication, BasicAuthentication), "permission-classes": (DjangoModelPermissions,) }
Tips
通过更改mapping参数更改注册用户模型的名称,例如:
rest_framework_extras.register(router, mapping=(("user", UsersViewSet),))
使用only和override参数限制将通过django rest框架显示的模型。定义逗号分隔的列表,例如:
rest_framework_extras.discover(router, only=["auth-user", "auth-permission"])
TOdo:文档覆盖
Unit Testing
使用以下命令运行测试:
python manage.py test rest_framework_extras.tests --settings=rest_framework_extras.tests.settings.111
License
请参阅此存储库的许可证文件中的许可证要求。