django restframework自定义模式

django-rest-coreapi-schema的Python项目详细描述


django restframework模式

这个包是django restframework的模式。

如何使用

安装

$ pip install django-rest-coreapi-schema
$ pip install -e git+https://github.com/emilioag/django_rest_coreapi_schema.git#egg=django_rest_coreapi_schema

配置

django设置

在settings.py文件中添加下一个配置。

REST_FRAMEWORK={'DEFAULT_SCHEMA_CLASS':'django_rest_coreapi_schema.schema.CoreAPIAutoSchema',}

restframework文档(url)

将restframework文档添加到url.py中

fromdjango.conf.urlsimporturlfromrest_framework.documentationimportinclude_docs_urlsurlpatterns=[url(r'^docs/',include_docs_urls(title='My API title',description='API description',public=False)),]

创建序列化程序
fromrest_frameworkimportserializersclassUserSerializer(serializers.Serializer):email=serializers.CharField(required=False,help_text="User email")address=serializers.CharField(required=False,help_text="User address")classFilterSerializer(serializers.Serializer):order=serializers.ChoiceField(required=False,choices=[("asc","Asc"),("desc","desc")],help_text="Order")username=serializers.CharField(required=False,help_text="Username pattern")classPathSerializer(serializers.Serializer):username=serializers.CharField(required=True,help_text="Username")

创建分页
fromrest_framework.paginationimportPageNumberPaginationclassLargeResultsSetPagination(PageNumberPagination):page_size=1000page_size_query_param='page_size'max_page_size=10000

创建视图

记录路径变量

您必须使用类变量:queryset

fromdjango_rest_coreapi_schema.viewsimportDocumentedBaseViewclassUserView(DocumentedBaseView):queryset=PathSerializer

URL参数

必须使用类变量:filter_backendsfilter_fields

  • filter_backends是包含所有 可能的url参数。
  • filter_fields是将出现在 coreapi文档。
fromdjango_rest_coreapi_schema.viewsimportDocumentedBaseViewclassUserListView(DocumentedBaseView):filter_backends=[FilterSerializer]filter_fields=('order','username')

车身

HttpPut、Post等正文。

fromdjango_rest_coreapi_schema.viewsimportDocumentedBaseViewclassUserView(DocumentedBaseView):body_serializer_class=UserSerializer

分页(对于大型结果)

fromdjango_rest_coreapi_schema.viewsimportDocumentedBaseViewclassUserListView(DocumentedBaseView):pagination_class=LargeResultsSetPagination

您可以在examples/restapi文件夹中看到一个完整的示例 储存库。

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

推荐PyPI第三方库


热门话题
java JNLP无法在浏览器中正确启动(与dtjava.js一起部署)   在执行下一个方法之前,java将等待线程执行结束   java如何将另一个LayoutManager应用于JComboBox?(多栏JComboBox尝试)   使用jPBC在java中实现双线性配对   java在使用@RequestMapping注释时获取请求的值(URL)   java如何控制流量   java如何获取IFC对象的绝对坐标?   java目标服务器无法使用htmlunit和tor响应异常   java需要帮助创建一个循环结构来运行我的程序   java有可能拥有一个Android APK并在应用程序中更改构建变体吗?   在Sphinx4中运行Ant的java   Java:从ArrayList获取子列表的有效方法   java如何使在循环内部创建的数组在循环外部工作?   apache poi通过java中的XSSF表从单元格读取日期值   安卓 java自己的SeqLock实现,避免spinlock会更好吗?   java的并发底层方法。util。同时发生的预定未来   java比较方法违反了它的一般约定,如何使它具有可传递性?   使用JAVA定向指定类的DB导出子类   一个方法中的java更改特定imageView