Django_rest框架
文章平均质量分 56
一写代码就开心
一起学编程呀,头秃的那种。
学完之后,找一份java,python开发的工作不成问题
展开
-
Django_rest框架电商项目实践项目(一篇文章讲清楚电商项目)项目的创建与基本的配置,所有接口的代码,项目代码已给
目录原创 2022-01-02 23:05:38 · 1066 阅读 · 0 评论 -
Django_rest框架片段高亮显示实践项目(一)url和view里面的代码的书写
目录新建项目创建model,并且生成数据表创建序列化文件view里面的代码第三级url的路径第三级view代码的书写(继承)第3.5级的view第四级的view页面展示HTML格式的代码局部权限控制新建项目和helloWord项目一样,就是建项目,搭建Djangorest的项目,现在因为是做代码片段高亮显示的项目,所以,需要一个新表,所以我们需要在model.py里面写一个实体类创建model,并且生成数据表from django.db import models# Create your原创 2022-01-01 21:39:39 · 491 阅读 · 0 评论 -
DRF项目(二)view代码的书写
目录产品列表分页进行显示的产品列表这个api路径,可以实现的功能是:筛选,分页,列表全部数据,搜索一个api路径,后面的参数是不一样的,所以功能是不一样的数据库里面有数据了,我们就可以和前端进行联系,先做一个产品列表在view里面先将数据库数据拿出来最好是每一个功能有一个api路径,这样是好查看,这个列表功能是将产品的全部的数据拿出来,返回给前端还可以筛选和查数据功能,这个只需要在列表view里面加代码就可以。#父类ListAPIView是只有列表功能,如果父类变为ListCreateAPI原创 2021-02-11 16:03:34 · 283 阅读 · 0 评论 -
DRF项目(一)创建rest下面,并且进行配置,建模,往数据库添加数据
目录1 项目的创建1 在pycharm创建django项目下面开始配置项目1 因为我们要用rest框架,所以在setting里面要配置rest框架的东西,具体如下:2 解决跨域问题看之前的文章,点击下面的链接就可以看2 建模,在model里面创建实体类模型3 admin.py里面进行注册4 打开admin后台配置上传图片的路径1 项目的创建1 在pycharm创建django项目什么也没有配置了,只是单纯的创建一个django项目2 在setting里面配置数据库在数据库里原创 2021-02-11 15:07:45 · 653 阅读 · 1 评论 -
django_rest 框架解决跨域问题
解决跨域问题,需要安装一个包pip install django-cors-headers这个包是 rest框架特定的之后在setting里面app里面注册’corsheaders’, 还要加一个中间件,位置一定要放对MIDDLEWARE = [ 'django.middleware.security.SecurityMiddleware', 'django.contrib.sessions.middleware.SessionMiddleware',在这个位置加这个原创 2021-02-11 13:45:47 · 296 阅读 · 0 评论 -
DRF框架(十四)——过滤Filtering,排序
目录过滤Filtering排序过滤Filtering对于列表数据可能需要根据字段进行过滤,我们可以通过添加django-fitlter扩展来增强支持。pip install django-filter在配置文件中增加过滤后端的设置:INSTALLED_APPS = [ ... 'django_filters', # 需要注册应用,]REST_FRAMEWORK = { 'DEFAULT_FILTER_BACKENDS': ('django_filters.res原创 2021-02-10 17:42:42 · 358 阅读 · 0 评论 -
DRF框架(十三)——限流,可以对接口访问的频次进行限制,以减轻服务器压力。
目录使用可选限流类使用可以在配置文件中,使用DEFAULT_THROTTLE_CLASSES 和 DEFAULT_THROTTLE_RATES进行全局配置,REST_FRAMEWORK = { 'DEFAULT_THROTTLE_CLASSES': ( 'rest_framework.throttling.AnonRateThrottle', 'rest_framework.throttling.UserRateThrottle' ), 'DE原创 2021-02-10 17:17:15 · 275 阅读 · 0 评论 -
DRF框架(十二)——认证Authentication,权限Permissions
目录认证权限提供的权限自定义权限认证可以在配置文件中配置全局默认的认证方案REST_FRAMEWORK = { 'DEFAULT_AUTHENTICATION_CLASSES': ( 'rest_framework.authentication.BasicAuthentication', # 基本认证 'rest_framework.authentication.SessionAuthentication', # session认证 )}也可原创 2021-02-10 17:04:41 · 655 阅读 · 0 评论 -
DRF框架(十一)——路由解读。action注解的声明有什么作用
这里写目录标题REST framework提供了两个router1. 使用方法2. 视图集中附加action的声明试图集里面,每增加一个额外的行为,那么就要写一个新的路由,这个是比较麻烦的。# router = SimpleRouter() # 创建路由器(路由器只能结束视图集一起使用)# 默认只为标准了增删改查行为生成路由信息,如果想让自定义的行为也生成路由需要在自定义行为上用action装饰进行装饰# router.register(r'books', views.BookViewSet)原创 2021-02-10 16:53:37 · 576 阅读 · 0 评论 -
DRF框架(十)——drf框架里面,除了默认的增删改查,其他的一些自定义的动作,如何用代码实现
view里面class BookViewSet(ModelViewSet): """视图集""" queryset = BookInfo.objects.all() serializer_class = BookInfoModelSerializer # 查询最后一本书 books/latest/ get:latest @action(methods=['get'], detail=False) # @action(methods=[指定下面的行为接收原创 2021-02-10 15:51:27 · 408 阅读 · 0 评论 -
DRF框架(九)——视图集ViewSet,ModelViewSet,将增删改查写到一个类里面,viewsetmixin (注意路由设置)
目录总结继承ViewSet实现增删改查路由继承GenericViewSet实现增删改查路由总结1.常用视图集父类 ViewSet 继承自APIView和ViewSetMixin,没有提供任何方法,需要自己写 GenericViewSet 继承GenericAPIView和ViewSetMixin,其中GenericAPIView提供了基础方法,可以直接搭配Mixin扩展类使用,所以我们选这个 ModelViewSet 继承GenericViewset,但同时也包括ListM原创 2021-02-10 15:35:22 · 1023 阅读 · 0 评论 -
DRF框架(八)——常用功能子类视图 工具视图(继承了GenericAPIView和各种Mixins工具类)
目录前言视图增删改查路由前言之前还需要继承多个类,现在将多个类合并为一个,以后只要继承了这一个,那么就相当于继承了多个了。1)工具视图都是GenericAPIView的子类,且不同的子类继承了不同的工具类2)工具视图的功能可以满足需求,只需要继承工具视图,并且提供queryset与serializer_class即可视图增删改查"""以下是GenericAPIView和Mixin合成的子类视图"""class BookListGenericView(ListCreateAPIView):原创 2021-02-10 14:56:58 · 172 阅读 · 0 评论 -
DRF框架(七)——五个视图扩展类 mixins视图工具集-辅助GenericAPIView,一下子继承多个类
目录为什么要用 mixins视图工具集5个mixins视图工具集查询list集合新增数据单查和修改路由为什么要用 mixins视图工具集之前只是继承了GenericAPIView。代码还是比较多,现在再次升级一下,不仅仅要继承GenericAPIView,还要多继承一些东西,让代码变少,具体还要继承什么?作用:提供了几种后端视图(对数据资源的增删改查)处理流程的实现,如果需要编写的视图属于这五种,则视图可以通过继承相应的扩展类来复用代码,减少自己编写的代码量。这五个扩展类需要搭配GenericAPI原创 2021-02-10 14:40:35 · 317 阅读 · 1 评论 -
DRF框架(六)——view视图里面继承GenericAPIView
目录继承GenericAPIView原因继承GenericAPIView之后提供的关于序列化器使用的属性与方法关于序列化器属性提供的关于数据库查询的属性与方法继承GenericAPIView实现查询全部继承GenericAPIView查询一个,也就是详情继承GenericAPIView 进行修改数据路由继承GenericAPIView原因之前rest框架最基础的view里面继承的是APIview,现在我们升级一下,继承GenericAPIView。GenericAPIView是继承APIView的,使原创 2021-02-10 14:18:50 · 350 阅读 · 0 评论 -
DRF框架(五)——APIview实现增删改查
目录用APIview实现的功能路由model序列化文件view视图查询全部数据新增数据根据pk查询一条数据根据pk进行修改一条数据删除一条数据用APIview实现的功能"""GET /books/ 提供所有记录POST /books/ 新增一条记录GET /books/<pk>/ 提供指定id的记录PUT /books/<pk>/ 修改指定id的记录DELETE /books/<pk>原创 2021-02-10 00:31:15 · 1349 阅读 · 3 评论 -
DRF框架(四)——序列化器和反序列化器
目录序列化器的作用rest框架给提供的序列化器序列化文件的写法序列化的使用关联数据的序列化咋实现序列化总结反序列化反序列化view里面的格式追加校验逻辑反序列化后新增或者更新咋实现反序列化总结序列化器的作用就是数据和模型类对象之间的转换,数据是前段传过来的数据,转换为模型类对象之后,才可以使用rest框架保存到数据库。将数据查询出来是模型类对象,只有转化为一定的格式,比如json格式之后,才可以返回给前段。总之: 这个序列化器就是一个中转站 主要进行对数据的转换,和对数据的校验(比如,前段传过原创 2021-02-09 22:32:07 · 507 阅读 · 0 评论 -
DRF框架(三)—— 响应模块(Response)、三大序列化组件介绍、Serializer组件(序列化与反序列化使用)
目录响应模块序列化组件(下面都是讲关于Serializer)响应模块响应类构造器:rest_framework.response.Responsedef __init__(self, data=None, status=None, template_name=None, headers=None, exception=False, content_type=None): """ :param data: 响应原创 2021-02-09 14:09:12 · 353 阅读 · 0 评论 -
DRF框架(二)——解析模块(parsers)、异常模块(exception_handler)
目录为什么要配置解析模块自定义全局配置:项目settings.py文件自定义局部配置:应用views.py的具体视图类(设置了局部就不用设置全局)异常模块 (走到逻辑异常都能被控制)为什么要自定义异常模块如何使用:自定义exception_handler函数如何书写实现体api应用下创建处理异常文件exception.py为什么要配置解析模块1)drf给我们提供了多种解析数据包方式的解析类 form-data/urlencoded/json2)我们可以通过配置来控制前台提交的哪些格式的数据后台在解原创 2021-02-09 13:47:40 · 274 阅读 · 0 评论 -
DRF框架(一)——drf请求生命周期是什么?请求模块request咋用?渲染模块render咋用?
目录安装DRF框架drf请求生命周期流程请求模块:request对象渲染模块:安装DRF框架pip install djangorestframeworkdrf请求生命周期流程根据应用中urls.py,走as_view方法,但是视图类没有该方法,所以请求走的是APIView的as_view方法在APIView的as_view调用父类(django原生View)的as_view,同时还禁用了 csrf 认证在父类(django原生View)的as_view中dispatch方法请求走的原创 2021-02-09 13:40:03 · 508 阅读 · 0 评论 -
Django_rest框架实践项目(二) 为什么很少的代码就可以实现增删改查?rest框架如何实现分页?页面实现登录按钮?权限控制
目录为什么很少的代码就可以实现增删改查?分页功能实现登录按钮权限控制总结之前已经创建了helloworld项目,并且我们只是写了很少的一点代码,就实现了对数据库的增删改查,为什么我们写了一点的代码,就可以实现增删改查呢?之前的界面是为什么很少的代码就可以实现增删改查?因为rest框架的路由,我们看我们写的路由就是这句代码实现了全部的功能, url(r'^', include(router.urls)), # 使用路由对象,urls这个属性是固定的, # 其他项目里面也是这样写我们原创 2021-02-08 21:30:40 · 263 阅读 · 0 评论 -
Django_rest框架实践项目(一)入门helloWord项目的创建和代码的解释
目录创建项目创建项目在django_venv 虚拟环境里面创建一个helloworld项目,并且创建一个quickstartapp ,也就是再创建一个app。,并且连接数据库,现在是连接mysql数据库,将app映射到数据库里面不需要将这个新创建的app注册到setting里面,这个和django项目不一样,但是要注册 ‘rest_framework’,1 应该映射用户的model,但是django已经将自带的映射好了。所以,用户表的model就不需要自己建设这个模型了。2 在qu原创 2021-02-08 20:23:21 · 480 阅读 · 0 评论