为模型自动生成API。公开核心Django功能。与现有表单进行验证。
项目描述
DRFE为任何Django模型生成RESTful API。它建立在Django Rest Framework之上。
先决条件
pip install djangorestframework
将 rest_framework 添加到您的 settings.py 中的 INSTALLED_APPS 设置。
安装
安装或添加 djangorestframework-extras 到您的Python路径。
将 rest_framework_extras 添加到您的 settings.py 中的 INSTALLED_APPS 设置。
功能列表
为所有已知应用程序生成默认序列化器和视图集以创建RESTful API。
将应用程序中已知的所有视图集与Django Rest Framework路由器进行注册。
为默认用户、工作人员用户和超级用户自定义序列化器和权限。
自定义FormMixin,将验证委托给普通Django表单。
自定义超链接字段和序列化器,HyperlinkedRelatedField 和 HyperlinkedModelSerializer
使用
用户权限和自定义UsersViewSet
djangorestframework-extras 提供了一个自定义视图集 UsersViewSet,其中包含默认用户、工作人员用户和超级用户的序列化器和权限。
通过默认路由器注册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行:路由器和DefaultRouter类自动连接视图和URL,并创建API根。
第5行:新的discover函数生成默认的序列化器和视图集。此函数应在正常注册之前运行。
第6行:新的register函数注册所有视图集(包括UsersViewSet),覆盖任何已以相同名称注册的项目。
第9行:通过包含router.urls来定义URL。
可用设置
REST_FRAMEWORK_EXTRAS
blacklist:要加入黑名单的模型字典。默认情况下,以下模型被加入黑名单
"REST_FRAMEWORK_EXTRAS": { "blacklist": { "sessions-session": {}, "admin-logentry": {} }, "authentication-classes": (SessionAuthentication, BasicAuthentication), "permission-classes": (DjangoModelPermissions,) }
提示
通过更改mapping参数来更改已注册的用户模型名称,例如
rest_framework_extras.register(router, mapping=(("user", UsersViewSet),))
使用only和override参数限制将通过Django Rest Framework显示的模型。定义一个以逗号分隔的列表,例如
rest_framework_extras.discover(router, only=["auth-user", "auth-permission"])
todo:记录override
单元测试
使用以下命令运行测试
python manage.py test rest_framework_extras.tests --settings=rest_framework_extras.tests.settings.111
许可协议
请参阅此存储库中LICENSE文件的许可要求。
项目详情
下载文件
下载适用于您平台文件的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。
源分布
构建分布
djangorestframework-extras-0.3.0.tar.gz的散列
算法 | 散列摘要 | |
---|---|---|
SHA256 | 35f9a712707908d339a5e0b7ad1d77332a3d3de194f25faf7e473b99ea92ad71 |
|
MD5 | d3213a2311a6b8058f0360043f4f46e3 |
|
BLAKE2b-256 | 3b2d682d0243538511d2a5bcb78df4a062d03ba36463fd5c44dd4b5d4757a842 |
djangorestframework_extras-0.3.0-py2.7.egg的散列
算法 | 散列摘要 | |
---|---|---|
SHA256 | 9264d3370ae400d2436a8383bbc20011c4b86466bc165772ffce09d93f8349cf |
|
MD5 | 2deae238348f1ec198664a053c0edec2 |
|
BLAKE2b-256 | e2df0fc825c617ee1337b1f8cc92b8d28bc3dc06b634baafec7744044438a03f |