创建django项目:
django-admin startproject + 项目名称(booktest)
进入项目
python3 manage.py startapp + 应用名称(app)
前后端分离的好处
1.适用于多个。。。
2.解耦
ensure_ascii=False 防止出现乱码
FBV 基于函数的视图
CBV 基于类的一个视图 Class-based View (导入类视图 from django.views import View)
get 获取数据 post 新增数据 delete 删除数据 put 更新数据 全局更新(path局部更新)CBV方式实现的接口 StudentsView.as_view 固定的写法
CBV方式实现的接口 StudentsView.as_view() 固定的写法
面向对象:继承,封装,多态
封装 :将同一类方法封装到类中,将数据封装到对象中
多态 :同一类调用不同方法
多继承执行的顺序是从左向右执行
什么是反射?
通过字符串映射object对象的方法或者属性
getattr() : 函数用于返回一个对象属性值 getattr(e(对象),'name(方法)','花花(默认值)')
hasattr() : 函数用于判断对象是否包含对应的属性。 hasattr(e,'huahua')
setattr() 函数对应函数 getattr(),用于设置属性值,该属性必须存在。
delattr() delattr 函数用于删除属性。
lower() : 把请求方式转换成小写
Django视图-CBV基于CBV请求流程
路由 --> view视图 --> dispath --> 根据不同的请求方式(根据反射执行不同的请求方式get,post,delete,put....)
调用父类的dispatch最终指向的是View里面的dispatch
所有的请求方式都会经过dispath方法
CSRF 保证跨站攻击 安全性
CSRF tokon 随机的字符串
csrf中间件里面有哪几种方法? 与中间件执行顺序?
- process_request 2.process_view 3.process_response
4.process_render_template 5.process_exeception
导入 from django.views.decorators.csf import csrf_exempt
from django.utils.decorators import method_decorator
FBV 基于函数的视图
@csrf_protect 如果没有进行全局的csrf认证,想要开启某一个视图的csrf
@csrf_exempt 基于FBV的一个方式
添加这个@csrf_exempt装饰器,表示不进行 csrf_tokon 认证
CBV 基于类的一个视图 Class-based View
方式一:@method_decorator(csrf_exempt) 在dispatch方法上面添加
方式二:@method_decorator(csrf_exempt,name='dispatch') 在类方法上面添加
csrf_protect是对某个视图函数启用CSRF
配置路由:CBV方式实现的接口 StudentsView.as_view() 固定的写法
RESTful规范(必须阅读,考试会考):
https://blog.csdn.net/qq_33961117/article/details/84944632
http://www.mamicode.com/info-detail-2371881.html
RESTful概念 - 一种开发规范
API 的10个规范?
1.API与用户的通信协议,总是使用HTTPs协议
2.域名
3.版本
4.路径
5.状态码
6.错误处理
7.返回结果
8.超媒体
9.RESTful规范支持方法
(1.) GET 从服务器上获取资源
(2.) POST 在服务器新建一个资源
(3.) PUT 在服务器更新资源
(4.) PATCH 在服务器更新资源
(5.) DELETE 从服务器删除资源
rest framework框架
安装 rest framework : pip3 install djangorestframework==3.8.2
request._request : 获取原生的request
request.authenticators : 获取认证类的列表