首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Vue+Django2.0 REST framework 打造前后端分离的生鲜电商项目(五)商品列表页

一、Django2.0的view实现商品列表页 算是对以前django知识的一个回顾,方便跟下面的drfDjango REST framework)实现商品列表页作对比 1.apps/goods下新建...import JsonResponse 39 return JsonResponse(json_data,safe=False) 2.urls.py设置路由 1 from django.urls...views_base中,我被 JsonResponse,HttpResponse这两个模块之间的有什么不同所引起好奇心,都是返回字符串,一个可以返回json,而另一个需要添加一些设置才能返回json。...', 20 ] 2.drf写views apps/goods下新建serializer.py文件(drf中的serializer.py等同于django中的forms.py) 1 from rest_framework...name字段(昵称),而drf找的是AbstractUser的username字段(用户名),没找到所以报错 解决方法:将UserProfile表中的__str__方法改成返回username: 1

4.8K61
您找到你想要的搜索结果了吗?
是的
没有找到

drf的接口文档生成与管理

coreapi pip3 freeze > requirements.txt 2.2 设置接口文档访问路径 配置文件settings.py中配置接口文档 REST_FRAMEWORK = {...文档路由对应的视图配置rest_framework.documentation.include_docs_urls 配置url主路由,其中参数title接口文档网站的标题 from rest_framework.documentation...3.6 说明 Django REST Swagger从19年开始就已弃用不再维护了,作者官方网站上说明了更推荐使用drf-yasg 可以阅读https://github.com/marcgibbons...'rest_framework', 'drf_yasg' ] 4.4 配置路由url from rest_framework import permissions from drf_yasg.views...4.6.4 校验文档有效性 保证自动生成文档的有效性, 可以通过get_schema_view中设置 validators 参数开启校验自动化生成文档是否符合OpenAPI2.0规范的功能 4.6.5

4.6K10

DRF框架学习(四)

DefaultRouter创建的对象,访问url地址的时候,我们都可以在后面加一个 .json,那么后台会给我们返回json格式的数据。...pip install django-filter 配置文件中增加过滤后端的设置: INSTALLED_APPS = [ ......8.1使用方法: 类视图中设置filter_backends,使用 rest_framework.filters.OrderingFilter过滤器,REST framework会在请求的查询字符串参数中检查是否包含了...DRF框架的默认异常处理设置如下: REST_FRAMEWORK = { 'EXCEPTION_HANDLER': 'rest_framework.views.exception_handler...10.2自定义异常处理 10.2.1自定义DRF框架异常处理函数 1.自定义异常处理函数 2.设置EXCEPTION_HANDLER配置项 10.2.2详解 可以DRF框架异常处理函数的基础上,补充一些其他的异常处理

2.7K40

Django+Vue开发生鲜电商平台之5.使用DRF实现商品列表页和过滤

为了区别于views.py,apps/goods下新建views_base.py如下: import json from django.views.generic.base import View...但是从代码中可以看到: 通过新建列表、其元素单个商品信息组成的字典,一个一个地添加,显得很麻烦,可进行改进; 有些字段不能直接用json.dumps()方法序列化,如datetime,会报错,如商品列表视图修改为如下时...二、DRF实现商品列表页 Django Restful framework简称DRF,可以查看官方文档https://www.django-rest-framework.org/,从官方文档可以看到,Django...使用Response类只是返回内容协商的Web API响应提供了一个更好的接口,该响应可以呈现为多种格式。 2.DRF过滤器 DRF提供了过滤功能,来实现简单高效的过滤。...还可以通过字段前面加上各种字符来限制搜索行为search_fields: '^'开始搜索 '='完全匹配 '@'全文搜索(当前仅支持Django的MySQL后端) '$'正则表达式搜索 如修改如下:

5.3K20

django写接口(实战篇)

1.设置全局分页参数 我们可以 project 下的 settings.py 文件中加入 REST_FRAMEWORK 字典,设置全局的分页参数 REST_FRAMEWORK = { # 配置全局分页类型和每页数量...注册完以后,我们 REST_FRAMEWORK 字典中将过滤器添加进去 REST_FRAMEWORK = { # 配置全局分页类型和每页数量 'DEFAULT_PAGINATION_CLASS...filtering http://www.django-rest-framework.org/api-guide/filtering/#example rest_framework 权限设置 到目前为止我们写的接口不设置任何权限上的设置...字段,author 我们使用 django 自带的 User 类, # 我们通过 ForeignKey 进行关联两个 Model,related_name 反向引用, # 即我们...'rest_framework', 'rest_framework.authtoken', ] # 然后 REST_FRAMEWORK 字典中配置 DEFAULT_AUTHENTICATION_CLASSES

2.1K20

DRF的Request对象和Response对象

DRF的Request对象和Response对象 一旦使用了DRF的视图,那么传入视图的Request对象不在是Django的Request对象,而是DRF封装过后的Request对象。...如果需要上传文件,请阅读DRF上传文件 注意 开发客户端应用程序时,请始终记住确保Content-Type HTTP 请求中发送数据时设置标头。...如果服务器和客户端之间约定好了使用json来传递信息,此时可以对默认解析器进行设置settings.py中加入下面的内容即可。...不过DRF官方还是建议我们对继承自APIView类或使用@api_view进行装饰的函数,都返回Response对象。 使用了Response对象返回,默认会带有一定的样式。...例如: image.png 参考资料: https://www.django-rest-framework.org/api-guide/requests/ https://www.django-rest-framework.org

1.6K40

Django+Vue开发生鲜电商平台之7.用户登录和注册功能

使用前,需要在settings.py中进行配置: # DRF配置 REST_FRAMEWORK = { 'DEFAULT_FILTER_BACKENDS': ['django_filters.rest_framework.DjangoFilterBackend...token不采用全局设置,而在View中单独设置,settings.py如下: # DRF配置 REST_FRAMEWORK = { 'DEFAULT_FILTER_BACKENDS': ['django_filters.rest_framework.DjangoFilterBackend...安装后,需要在settings.py中进行配置: # DRF配置 REST_FRAMEWORK = { 'DEFAULT_FILTER_BACKENDS': ['django_filters.rest_framework.DjangoFilterBackend...(attrs)方法中attrs变量增加键mobile的数据,并且要修改UserProfile模型的mobile字段允许,修改如下: class UserProfile(AbstractUser)...字段,但是validate(attrs)又将其删去,导致序列化时找不到code字段,因此出错,这是需要将字段的write_only设置True,以确保更新或创建实例时可以使用该字段,但是序列化表示形式时不包括该字段

4.2K20

五、商品列表页

5.1.django的view实现商品列表页 (1)goods/view_base.py goods文件夹下面新建view_base.py,为了区分djangodjango rest framework...数据 5.2.django的serializer序列化model (1)model_to_dict 当字段比较多时,一个字段一个字段的提取很麻烦,可以用model_to_dict,将model整个转化为...,images保存的是一个相对路径,我们还需要补全路径,而这些drf都可以帮助我们做到 以上写了这么多只是为了引入django rest framework和简单介绍django的序列化用法,下面就是重点讲解...django rest framework了 5.3.APIview方式实现商品列表页 (1)安装 pip install coreapi                         drf的文档支持...pip install django-guardian           drf对象级别的权限支持 (2)配置def文档的url MxShop/urls.py from rest_framework.documentation

4.7K00

Django REST framework+Vue 打造生鲜超市(四)

五、商品列表页 5.1.django的view实现商品列表页 (1)goods/view_base.py goods文件夹下面新建view_base.py,为了区分djangodjango rest...framework的view 利用Django的view实现返回json数据 # goods/view_base.py from django.views.generic import View from...5.2.django的serializer序列化model (1)model_to_dict 当字段比较多时,一个字段一个字段的提取很麻烦,可以用model_to_dict,将model整个转化为dict...django的serializer虽然可以很简单实现序列化,但是有几个缺点 字段序列化定死的,要想重组的话非常麻烦 从上面截图可以看出来,images保存的是一个相对路径,我们还需要补全路径,而这些drf...都可以帮助我们做到 以上写了这么多只是为了引入django rest framework和简单介绍django的序列化用法,下面就是重点讲解django rest framework了 5.3.APIview

4.8K90

DRF学习笔记(一)

# 一、Django REST FrameWork 简介 使用 Django REST FramWork 能够让我们使用 Django 编写的后端 API 接口时,更优雅的处理数据的 json 序列化和...json 反序列化 # 1、DRF 的安装 这里想必学习了 django 的童鞋都应该能够知道通过 python 自带的包管理工具进行安装了吧 命令: pip install djangorestframework...'rest_framework', } ok,到这里我们就成功得把 DRF 安装到自己电脑上了!...# 2、使用 使用 DRF,我们可以这样编写代码,在对应的 app 目录下,新建一个 serializer.py 文件,文件当中编写如下代码: from rest_framework import serializers...DRF 提供的序列化器对我们的之前编写的 views 代码进行改造了 # 三、Request 对象解析 当我们的视图层继承了 DRF 给我们提供的的 View 时,DRF会给我们编写的视图函数传递一个

61910

DRF系列总结二:脚手架搭建

Django基础工程的基础上,安装DRF并进行配置:比如统一接口返回格式、统一异常处理等,并在后面的文章中,不断完善出一套DRF脚手架,以降低后面的开发同学的趟坑成本。...===================================== REST_FRAMEWORK = { } DRF优先从django配置文件中的REST_FRAMEWORK字典中获取配置信息...', 'PAGE_SIZE': 10, ... } PAGE_SIZE全局设置了默认的分页属性:单页数据量 DEFAULT_PAGINATION_CLASS设置None时,则关闭了所有列表接口的后台分页功能...我们DRF提供的一个分页类的基础上,进行了简单的改造,内容如下: from collections import OrderedDict from rest_framework...,代表当前页和总页数,并修改了返回数据的字段items,这样可以统一接口的分页格式,满足前端和第三方系统对接口后台分页的绝大部分需求场景。

3.6K60

第 11 篇:基于 drf-haystack 的文章搜索接口

此时就要发挥开源社区的力量,去 GitHub 使用关键词 rest haystack 搜索,果然搜到一个 drf-haystack 开源项目,专门用于解决 django-rest-framework 和...关键的地方在这个 search_fields,这个列表声明用于搜索的字段(通常都定义索引字段),我们在上一部教程设置 django-haystack 时,文章的索引字段设置的名字叫 text,如果对这一块有疑惑...一套标准化的 django-restful-framework 开发流程,不过大量工作已由 drf-haystack 背后替我们完成,我们只写了非常少量的代码即实现了一套搜索接口。 来看看搜索效果。...但是,django-rest-framework 并没有提供这些比较个性化需求的序列化字段,因此接下来我们接触 drf 的一点高级用法——自定义序列化字段。...对象,这个对象就是视图中的 HTTP 请求对象,但是因为 django 中 request 对象无法像 flask 那样从全局获取,因此 drf 视图中将其保存在了序列化器和序列化字段的 context

1.6K20

Python进阶40-drf框架(二)

exception_handler函数 from rest_framework.views import exception_handler as drf_exception_handler from...): # drf的exception_handler做基础处理 response = drf_exception_handler(exc, context) # ,自定义二次处理...需要先创建一个serializer.py文件,当然文件名可以自定义,与models文件同一级即可 # 序列化组件,每一个model类,提供一套序列化工具类 from rest_framework...,设置校验规则 # # 2)需要额外校验的字段提供局部钩子函数,如果该字段不入库,且不参与全局钩子校验,可以将值取出校验 # # 3)有联合关系的字段们提供全局钩子函数...,设置校验规则 2)需要额外校验的字段提供局部钩子函数,如果该字段不入库,且不参与全局钩子校验,可以将值取出校验 3)有联合关系的字段们提供全局钩子函数,如果某些字段不入库

1.9K20

第 9 篇:实现分类、标签、归档日期接口

视图集中所有以上提及的以标准动作命名的方法,都会被 django-rest-framework 的路由自动注册标准的 API 接口。...django-rest-framework 默认只能识别标准命名的视图集方法并将其注册 API,但我们可以添加更多非标准的 action,而为了让 django-rest-framework 能够识别这些方法...而这个接口中只需要序列化一个时间字段(类型 Python 标准库中的 datetime.date),所以没必要单独定义一个序列化器了,直接拿 django-rest-framework 提供的用于序列化时间类型的...接着我们接口返回一个 Response, Response 将序列化后的结果包装返回(保存在 data 属性中),django-rest-framework 会进一步帮我们把这个 Response 中包含的数据解析合适的格式...其中 filter_backends 设置 DjangoFilterBackend,这样 API 返回结果时, django-rest-framework 会调用设置的 backend(这里是 DjangoFilterBackend

2.6K30
领券