为模型自动生成API。公开核心django功能。根据现有表单验证。

djangorestframework-extras的Python项目详细描述


https://travis-ci.org/praekelt/djangorestframework-extras.svg?branch=develophttps://coveralls.io/repos/github/praekelt/djangorestframework-extras/badge.svg

drfe为任何django模型生成restful api。它建立在django rest框架之上。

Prerequisite

  1. pip安装djangorestframework
  2. rest_framework添加到settings.py中的INSTALLED_APPS设置中。

Installation

  1. 在python路径中安装或添加djangorestframework-extras
  2. rest_framework_extras添加到settings.py中的INSTALLED_APPS设置中。

Feature List

  • 为所有已知应用程序生成默认序列化程序和视图集以创建restful api。
  • 向django rest框架路由器注册应用程序已知的所有视图集。
  • 默认用户、人员用户和超级用户的自定义序列化程序和权限。
  • < LIVE FuffMIXIN将验证委托给一个正常的Django表单。
  • 自定义超链接字段和序列化程序,HyperlinkedRelatedFieldHyperlinkedModelSerializer

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. 第1行和第3行:router和defaultrouter类自动连接视图和url,并创建api根。
  2. 第5行:新的discover函数生成默认的序列化器和视图集。此函数应在正常注册之前运行。
  3. 第6行:新的register函数注册所有的视图集(包括usersviewset),覆盖所有已经用相同名称注册的项。
  4. 第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),))

使用onlyoverride参数限制将通过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

请参阅此存储库的许可证文件中的许可证要求。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
图像处理Java 8 ImageIO在Linux中无法正确读取JPEG   spring如何用Java 1.4兼容版本替换@Resource注释   java Http请求参数类型传播   在web浏览器中看不到Java Maven Tomcatplugin web应用程序   jvm在Java中使用直接内存的目的是什么?   如何从列表转换为字符串java   java setAdapter gridview发送上下文   SwingJava。方法上的lang.NullPointerException   java什么是shell脚本、makefile和ant文件   当使用getGraphics()方法时,java JPanel图形会闪烁   java如何将迭代转换为递归?   java为什么我的抽屉菜单在同一个XML上有ConstraintLayout时没有响应?   java如何在图像上画一个圆?   Android studio:Rabbitmq:Error:java。lang.ClassNotFoundException:类io。千分尺。果心仪器找不到仪表注册表