![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Django
文章平均质量分 55
NeilNiu
日拱一卒无有尽,功不唐捐终入海!
展开
-
DRF框架-总结
DRF总结Xmind下载原创 2022-03-09 22:58:28 · 599 阅读 · 0 评论 -
DRF-认证、权限、限流、过滤、排序、分页、异常处理、自动生成接口文档
一、认证第一个功能是表单认证、session认证,认证通过后,就到了权限,这个用户是否有这个权限,二、权限控制用户有哪些资源的访问权限,认证和权限是需要一块使用的。三、限流主要针对爬虫来说的,一个用户请求的次数ip地址进行限流。四、过滤在请求数据的时候,按照商品的名称进行过滤,五、排序按照销量排序,按照日期排序,按照价格排序六、分页用在列表页数据中,七、异常处理数据库异常,REST framework不能处理数据库异常,在原来基础上,增加处理数据库异常的方原创 2022-03-09 00:14:52 · 998 阅读 · 1 评论 -
DRF-视图集ModelViewSet和自定义路由
ModelViewSet原创 2022-03-08 00:01:43 · 2231 阅读 · 4 评论 -
DRF-视图集ViewSet和GenericViewSet的使用方式
视图集(1、路由匹配规则发生变化;2、视图中定义方法不再按照请求方式定义)视图集分为:两个基本视图集:(1)ViewSet,继承自APIView,没有继承拓展类,业务逻辑还得自己去写(2)GenericViewSet,继承自GenericAPIView,没有继承拓展类,业务逻辑还得自己去写两个拓展视图集:(1)ModelViewSet(增删改查都可以实现了),继承了GenericAPIView,继承了五个拓展类(2)ReadOnlyModelViewSet(实现了获取多个数据对象原创 2022-03-05 12:28:16 · 1295 阅读 · 0 评论 -
DRF-五个拓展类及使用、拓展类子类
一、五个拓展类(配合GenericAPIView)继承自object,这五个拓展类里都对应的封装好了相应的功能,我们只需要调用里面的方法就可以了ListModelMixin:获取多个数据对象CreateModelMixin:保存数据RetrieveModelMixin:获取单一数据对象UpdateModelMixin:更新数据DestroyModelMixin:删除数据。这五个拓展类是配合GenericAPIView使用的所以还是用GenericaAPIView的视图类代码,..原创 2022-03-02 23:47:09 · 469 阅读 · 0 评论 -
DRF-视图类APIView与GenericAPIView
两个基本类视图APIView,GenericAPIView原创 2022-03-02 00:04:49 · 4347 阅读 · 0 评论 -
序列化器总结
序列化器体现的是面向对象里的封装思想,包括序列化器(Serializer)和模型类序列化器(ModelSerializer)。原创 2022-03-01 00:02:50 · 314 阅读 · 0 评论 -
DRF-模型类序列化器的使用ModelSerializer
ModelSerializer可以根据指定的模型类,自动生成相应的序列化器字段,继承Serializer的时候所有方法是手写,现在使用继承ModelSerializerclass BookModelSerializer(serializers.ModelSerializer): class Meta: model = BookInfo # 指定生成字段的模型类 fields = ('btitle', 'bread') # 指定模型类中的字段1、fiel原创 2022-03-01 00:02:21 · 653 阅读 · 0 评论 -
DRF-反序列化保存方法和更新方法
一、反序列化保存方法在serializer序列化器中创建一个保存方法 def create(self, validated_data): # 保存数据,validated_data 是个字典,做拆包处理 # **validated_data 它的含义是,{'name':'python'} name = python book = BookInfo.objects.create(**validated_data) return原创 2022-02-24 23:37:46 · 2331 阅读 · 0 评论 -
DRF-反序列化参数验证
一、反序列化参数验证步骤1、先去序列化器中指定每个字段的验证参数2、在视图当中使用我们创建的序列化器,并且把传递的入参交给data参数,生成一个对象,用对象点is_valid() 来进行验证。 验证方法,一旦调用这个is_valid()方法,就会调用序列化器里的数据内容是否符合要求,想看下验证结果,如何查看验证结果呢,通过对象点errors来查看,同时如果加了raise_exception=True, raise_exception=True 的含义是,一旦检出错误,自动return,不用我们手写r原创 2022-02-24 00:00:17 · 1195 阅读 · 0 评论 -
Python面向对象思想
一、属性class A(object): # 类属性 a = "A" def __init__(self): # 实例属性 self.b = "B" class Meta: c = "C"print(A.a)print(A().b)print(A().Meta.c)1、类属性2、实例属性,类属性,类本身只能调类属性,不能调用实例属性实例属性,实例对象可以调用类属性和实例属性可以在类里面再定.原创 2022-02-22 00:19:09 · 482 阅读 · 0 评论 -
DRF-嵌套序列化
from django.db import models# Create your models here.class BookInfo(models.Model): btitle = models.CharField(max_length=20, verbose_name='名称') bpub_date = models.DateField(verbose_name='发布时间') bcomment = models.IntegerField(default=0, ve.原创 2022-02-22 23:30:26 · 1477 阅读 · 0 评论 -
使用DjangoRestframework序列化器重写get方法及源码分析
查询接口的重新写法新建一个子应用python manage.py startapp book_drf, 把这个子应用在父应用的setting.py里进行注册,然后父应用的urls.py的新加路由,指定到子应用的路由中,在子应用urls.py中添加路由,指向子应用中的视图views.py中的类名。from django.contrib import adminfrom django.urls import path, includefrom django.conf.urls import u原创 2022-02-19 22:38:21 · 1025 阅读 · 0 评论 -
序列化和反序列化、Django Rest framework
反序列化,反序列化是指从前端接收的json数据,转成数据对象的过程,更新操作、保存操作有反序列化操作,接收前端->验证数据->保存或更新为新的数据对象序列化将获取到的数据对象转化为json数据。如果使用上一篇的写法,反序列化和序列化都要自己进行写代码,为了提高效率,使用Django Rest Framework,把反序列化和序列化代码进行了封装,定义一个序列化器Serializer,可以帮助自动实现反序列化和序列化Django REST framework借助 Django框架来进行原创 2022-02-19 22:12:06 · 275 阅读 · 0 评论 -
Django实现RESTful风格增删改查代码
RESTFul风格的增删改查接口1、获取所有信息创建modelfrom django.db import models# Create your models here.class Book(models.Model): name = models.CharField(max_length=20) price = models.IntegerField() pub_date = models.DateField()class BookInfo(mode.原创 2022-02-19 10:47:48 · 674 阅读 · 0 评论 -
RESTful设计方法
1、域名应尽量将API部署在专用的域名下http://api.example.com2、版本应该将API的版本号放入URLhttp://www.example.com/app/1.0/foohttp://www.example.com/app/2.0/foo3、路径表示API的具体网址,每个网址代表一种资源,如果要操作什么资源,什么资源就作为路径(1)资源作为网址,只能有名词(books),不能用动词(add_book)(2)资源的名词,需要用复数,无论是子资源还是所原创 2022-02-19 10:41:23 · 230 阅读 · 0 评论 -
Django-ORM
ORM安装mysqlclient,搜索mysqlclient安装,pymysql先配置_init_.pyimport pymysqlpymysql.install_as_MySQLdb()在mysql数据库中,创建数据库。修改数据库配置,在setting文件中的DATABASES里'default': { # 指定引擎 'ENGINE': 'django.db.backends.mysql', # 指定数据库名称原创 2022-02-12 10:36:49 · 647 阅读 · 0 评论 -
Django创建子应用及MVT模式
一、python manage.py startapp 子应用名称在子应用中新建一个urls.py文件,作为子路由from django.urls import pathfrom testdjango.views import indexurlpatterns = [ path('', index)]views.py里创建一个视图from django.shortcuts import render# Create your views here.from dja原创 2022-02-12 10:35:29 · 429 阅读 · 0 评论 -
社区版pyCharm安装Django
cmd到命令行窗口pip install django安装成功后,在命令行输入import djangodjango.get_version()说明安装成功了。进入我的创建项目的文件夹中搭建django项目输入:django-admin startproject XXX(项目名)进入新建的项目中创建应用:python manage.py startapp xxx(应用名)使用pycharm中open打开创建的项目...原创 2022-01-21 21:50:54 · 2602 阅读 · 0 评论