django框架的基础知识点《陆》

==============================GenericAPIView+***Mixin============================

对于数据的处理方式:5种:

查询多个====>list

查询一个====>retrieve

创建========>create

修改========>update

删除========>destroy

heros==>

list

create

listcreate

hero===>

retrieve==>1

update====>2

destroy====>3

1+2

1+3

1+2+3

总结:

属性:

queryset===>指定查询范围

serializer_class==>指定序列化器类型

方法:

get_queryset()==>根据判断,返回不同的查询范围

get_serializer_class()==>根据判断,返回不同的序列化器类型

====================视图集

继续简化代码,遇到的问题是:

在同一个类中,不同出现同名的方法,如

def get(self,request):

def get(self,request,pk):

此方法不能改名,因为这个方法的名称是与请求方式对应的

能够尝试的方案:

1.修改python解释器,支持类中方法同名,否定这个方案,因为这个团队能力不够

2.修改方法名称,重写dispatch()方法

request.method

使用:

ModelViewSet+DefaultRouter===>将模型的crud操作最简化

====================视图类型的选择

APIView====================>不涉及到crud操作

GenericAPIView+5个Mixin====>完成操作,但不是所有的crud

ModelViewSet+DefaultRouter=>完成全套的crud操作

====================配置

# 如下是drf的配置

REST_FRAMEWORK = {

# 身份认证的方式:

‘DEFAULT_AUTHENTICATION_CLASSES‘: (

‘rest_framework.authentication.BasicAuthentication‘, # 基本认证

‘rest_framework.authentication.SessionAuthentication‘, # session认证

),

# 权限判断

‘DEFAULT_PERMISSION_CLASSES‘: (

‘rest_framework.permissions.IsAuthenticated‘,

),

# 限制访问次数

‘DEFAULT_THROTTLE_CLASSES‘: (

# 匿名访问限制

‘rest_framework.throttling.AnonRateThrottle‘,

# 实名访问限制

‘rest_framework.throttling.UserRateThrottle‘

),

‘DEFAULT_THROTTLE_RATES‘: {

# 匿名的频度

‘anon‘: ‘100/day‘,

# 实名的频度

‘user‘: ‘1000/day‘

},

# 进行查询的过滤

‘DEFAULT_FILTER_BACKENDS‘: (

‘django_filters.rest_framework.DjangoFilterBackend‘,

‘rest_framework.filters.OrderingFilter‘,

),

# 分页

‘DEFAULT_PAGINATION_CLASS‘: ‘rest_framework.pagination.PageNumberPagination‘,

‘PAGE_SIZE‘: 1, # 每页数目

# 获取版本信息的方式:

‘DEFAULT_VERSIONING_CLASS‘: ‘rest_framework.versioning.NamespaceVersioning‘,

}

原文地址:https://www.cnblogs.com/python58/p/9941002.html

时间: 2024-10-08 10:48:18

django框架的基础知识点《陆》的相关文章

django框架的基础知识点《壹》

mvt model===>模型类===>与关系型数据库进行交互 view====>视图====>接收请求,处理,返回响应 template===>模板html===>html+jinjia2====================django简介是python语言编写的一个web框架====================创建工程及应用 -----工程django-admin startproject 项目名称在pycharm中创建项目------应用1.python

django框架的基础知识点《叁》

===================数据库操作====================== ------------------->增加: 方案一:根据模型类创建对象,为属性赋值,对象.save() 方案二:模型类.objects.create(属性=值,...)==>返回对象(推荐使用此方法) --------------------->查询 属性_运算符=值 F对象===>在等号的右侧出现模型类的属性 Q对象===>实现逻辑与,逻辑或,逻辑非的运算 ----------

django框架的基础知识点《伍》

=================反序列化操作===================== 反序列化:将接收到的字典转换成模型类的对象 分为两步:1.验证,2.保存 -------->验证:验证的方式: 1.类型+选项 2.validate_属性名称(self,value)===>验证指定的属性是否合法 3.validate(self,values)========>验证多个属性是否合法 4.validators=[方法]===========>针对属性进行验证 调用: serial

框架----Django框架(基础篇)

一.基本配置 一.创建django程序 终端命令:django-admin startproject sitename IDE创建Django程序时,本质上都是自动执行上述命令 其他常用命令: python manage.py runserver 0.0.0.0 python manage.py startapp appname python manage.py syncdb python manage.py makemigrations python manage.py migrate pyt

Django框架 之基础入门

django是一款MVT的框架 一.基本过程 1.创建项目:django-admin startproject 项目名称 2.编写配置文件settings.py(数据库配置.时区.后台管理中英文等) 3.创建应用:python manage.py startapp 应用名称 4.编写模型类:models.py 5.生成迁移文件: python manage.py makemigrations 6.执行迁移生成数据表: python manage.py migrate 7.后台管理:python

框架----Django框架知识点整理

一.cbv 1 cbv(class-base-view) 基于类的视图 2 fbv(func-base-view) 基于函数的视图 a.基本演示 1 urlpatterns = [ 2 3 url(r'^login.html$', views.Login.as_view()), 4 ] urls.py 1 from django.views import View 2 3 class Login(View): 4 """ 5 get 查 6 post 创建 7 put 更新

Django框架基础(一)

Python的WEB框架有Django.Tornado.Flask 等多种,Django相较与其他WEB框架其优势为:大而全,框架本身集成了ORM.模型绑定.模板引擎.缓存.Session等诸多功能. 1 安装 1 pip3 install django 2 # 创建Django程序 3 django-admin startproject mysite 4 # 进入程序目录 5 cd mysite 6 # 启动socket服务端,等待用户发送请求 7 python manage.py runse

Django框架基础

Django基础-Lesson1 web框架概念 框架,即framework,特指为解决一个开放性问题而设计的具有一定约束性的支撑结构,使用框架可以帮你快速开发特定的系统. 对于所有的Web应用,本质上其实就是一个socket服务端,用户的浏览器其实就是一个socket客户端.  socket模拟服务端 最简单的Web应用就是先把HTML用文件保存好,用一个现成的HTTP服务器软件,接收用户请求,从文件中读取HTML,返回. 如果要动态生成HTML,就需要把上述步骤自己来实现.不过,接受HTTP

Python Web框架【Django框架第一篇基础】

Django框架第一篇基础[DjangoMTV模式] 老师博客[www.cnblogs.com/yuanchenqi/articles/6811632.html] 同学博客:http://www.cnblogs.com/haiyan123/p/7701412.html Django官网:https://www.djangoproject.com/download/ 一.安装Django DjangoMTV模式 Django的MTV模式本质是各组件之间为了保持松耦合关系,Django的MTV分别代