一、APIView的请求生命周期

二、重写的as_view方法

"""
1)as_view方法完成路由配置,返回配置函数是 csrf_exempt(view),也就是禁用了csrf认证规则
结论:所有继承APIView的子类,都不受csrf认证规则的限制 2)将请求处理的任务交给dispath方法完成
"""

三、重写的dispatch方法

"""
完成了三大核心任务:
1)请求对象的处理:请求渲染模块 2)请求过程的处理:三大认证模块 => 自己代码完成处理 3)请求结果的响应:异常模块处理异常响应 | 响应渲染模块处理正常响应
"""

四、drf路由分发配置

主路由:

from django.conf.urls import url, include
from django.contrib import admin urlpatterns = [
url(r'^admin/', admin.site.urls),
url(r'^api/', include('api.urls'))
]

副路由:

from django.conf.urls import url

from . import views
from django.views.static import serve
from d_priect import settings
urlpatterns = [
url(r'users/$',views.UserAPIView.as_view()),
url(r'users/(?P<pk>\d+)/$',views.UserAPIView.as_view()), # 暴露文件
url(r'^media/(?P<path>.*)', serve, {'document_root': settings.MEDIA_ROOT}), ]

视图:

注意:rest_framework需要先注册,在settings.py中:

INSTALLED_APPS = [

    # drf框架的部分功能是依赖于注册后的,所有drf需要在app中注册
'rest_framework',
]
from rest_framework.views import APIView
from rest_framework.response import Response class UserAPIView(APIView):
def get(self,request,*args,**kwargs):
return Response('get ok') def post(self,*args,**kwargs):
return Response('post ok')

五、解析模块配置

from rest_framework.settings import APISettings
# 自定义drf配置
REST_FRAMEWORK = {
# 解析模块
'DEFAULT_PARSER_CLASSES': [
'rest_framework.parsers.JSONParser', # json数据类型
'rest_framework.parsers.FormParser', # urlencoded数据类型
'rest_framework.parsers.MultiPartParser' # from-data数据类型
],
# 渲染模块
'DEFAULT_RENDERER_CLASSES': [
'rest_framework.renderers.JSONRenderer', # 数据渲染
'rest_framework.renderers.BrowsableAPIRenderer', # 浏览器渲染
],
}

六、渲染模块配置

浏览器渲染打开

别人知道你后台用什么写的,好攻击你

浏览器渲染关闭

效果:数据正常渲染,浏览器只有数据。别人不知道你后台数据怎么写的,不容易攻击你

结论

当项目没上线的时候:一般浏览器渲染打开

当项目上线:为了安全一般把浏览器渲染关闭

七、drf使用后台admin

现在admin.py种写入:然后一切正常

from django.contrib import admin

from . import models
# 注册
admin.site.register(models.Book)
admin.site.register(models.Publish)
admin.site.register(models.Author)
admin.site.register(models.AuthorDetail)

drf路由分发、解析/渲染模块配置、使用admin、自动序列化配置的更多相关文章

  1. DRF路由组件和渲染器组件

    参考博客:https://www.cnblogs.com/wupeiqi/articles/7805382.html

  2. DRF框架(一)——restful接口规范、基于规范下使用原生django接口查询和增加、原生Django CBV请求生命周期源码分析、drf请求生命周期源码分析、请求模块request、渲染模块render

    DRF框架    全称:django-rest framework 知识点 1.接口:什么是接口.restful接口规范 2.CBV生命周期源码 - 基于restful规范下的CBV接口 3.请求组件 ...

  3. Admin注册和路由分发详解

    Admin注册和路由分发详解 1.启动 #autodiscover_modules('admin', register_to=site) 2.注册 1.单例对象 admin.site = AdminS ...

  4. 第二章、drf框架 - 请求模块 | 渲染模块 解析模块 | 异常模块 | 响应模块 (详细版)

    目录 drf框架 - 请求模块 | 渲染模块 解析模块 | 异常模块 | 响应模块 Postman接口工具 drf框架 注册rest_framework drf框架风格 drf请求生命周期 请求模块 ...

  5. 3) drf 框架生命周期 请求模块 渲染模块 解析模块 自定义异常模块 响应模块(以及二次封装)

    一.DRF框架 1.安装 pip3 install djangorestframework 2.drf框架规矩的封装风格 按功能封装,drf下按不同功能不同文件,使用不同功能导入不同文件 from r ...

  6. drf框架 - 请求模块 | 渲染模块

    Postman接口工具 官方 https://www.getpostman.com/ get请求,携带参数采用Params​post等请求,提交数据包可以采用三种方式:form-date.urlenc ...

  7. drf框架概况-resful接口规范-请求模块-渲染模块-Postman-drf请求生命周期

    drf框架 全称:django-rest- framework 知识点: """ 1.接口:什么是接口.restful接口规范 2.CBV生命周期源码-基于restful ...

  8. Django框架04 /模板相关、别名/反向解析/路由分发

    Django框架04 /模板相关.别名/反向解析/路由分发 目录 Django框架04 /模板相关.别名/反向解析/路由分发 1. 语法 2. 变量/万能的点 3 . 过滤器 4. 标签Tags 5. ...

  9. django-rest-framework-源码解析002-序列化/请求模块/响应模块/异常处理模块/渲染模块/十大接口

    简介 当我们使用django-rest-framework框架时, 项目必定是前后端分离的, 那么前后端进行数据交互时, 常见的数据类型就是xml和json(现在主流的是json), 这里就需要我们d ...

随机推荐

  1. Celery 收下这捆芹菜!

    目录 Celery简介 Celery构成 Task Broker Worker Backend Celery使用 安装 基本使用 异步任务: delay 延迟任务: apply_async 周期任务: ...

  2. Spring 加定时器

    定时器功能我们一般不常用, 但是一旦用到,那也是非常重要的, 今天我们就讲一下如何简单快速的使用定时器 第一种方法, 使用注解的方式完成定时器 1.在spring-servlet.xml文件中加入ta ...

  3. 【转】提升你的Java应用性能:改善数据处理

    提升你的Java应用性能:改善数据处理 作者:贾小骏  发布于07月26日 10:17 许多应用程序在压力测试阶段或在生产环境中都会遇到性能问题.如果我们看一下性能问题背后的原因,会发现很多是由数据处 ...

  4. # go微服务框架kratos学习笔记六(kratos 服务发现 discovery)

    目录 go微服务框架kratos学习笔记六(kratos 服务发现 discovery) http api register 服务注册 fetch 获取实例 fetchs 批量获取实例 polls 批 ...

  5. C语言之运算符和表达式

    运算符优先级: 求余运算用法: 声明变量的名字和类型: 变量的类型决定占用内存空间的大小.数据的存储形式,合法的表数范围.可参与的运算种类.变量名标识了内存中的一个存储单元. 自动类型转换: 运算符和 ...

  6. Numpy的介绍与基本使用方法

    1.什么是Numpy numpy官方文档:https://docs.scipy.org/doc/numpy/reference/?v=20190307135750 NumPy是一个功能强大的Pytho ...

  7. bootstrap4popper.js报错Uncaught ReferenceError

    这是因为bootstrap4需要umd版的popper.js <script src="https://cdn.bootcss.com/popper.js/1.15.0/umd/pop ...

  8. VirtualBox扩充磁盘&清空安装包

    1.virtual box 扩充磁盘空间 D:\VirtualBox\VBoxManage.exe modifyhd "E:\virtual box\daisyyun\daisyyun.vd ...

  9. java中implements和extends的区别

    1,extends是继承某个类的,可以使用某个类的方法,也可以重写父类的方法. 2,implements是用于实现类接口,可以实现一个或多个类的接口,接口的方法一般为空的,所以必须重写这一个或多个的方 ...

  10. [bzoj2004] [洛谷P3204] [Hnoi2010] Bus 公交线路

    Description 小Z所在的城市有N个公交车站,排列在一条长(N-1)km的直线上,从左到右依次编号为1到N,相邻公交车站间的距 离均为1km. 作为公交车线路的规划者,小Z调查了市民的需求,决 ...