回顾:
发送请求时:发送请求头和请求数据 request.META和request.request.body
响应请求时:响应头和响应返回数据 response.HEADER和response.body
Models操作:
单表
多表
多表可以互相调用另一个表,通过外键,#b_set
模板操作:
a 基本操作
b 继承 母版
c include 组件
d. simple_tag,filter
simple_tag 可以接收任意参数、返回内容也会在页面显示 不能用于if else判断条件
filter() 可以跟if else 但参数不能加空格
Session:
基本操作:
通用操作:
存储方式操作:
CSRF的使用(通过Form方式提交CSRF才有效):
Form请求:
Ajax请求:
在Ajax中,有种简单方式:
全局加上CSRF,如果个别函数不需要认证,则增加装饰器:
如果全局不加CSRF,如果个别函数需要认证,则增加装饰器:
以下四种方式,是不需要加csrftoken的
Django之中间件(/管道/hTTP HANDLE):
请求穿过中间件,结果再穿过中间件
明白中间件的原理
中间件用途:
公共校验
黑名单过滤
process_request和process_response函数名不能变
1 process_request
2 process_view 可以获得view函数
3 路由映射
4 process_response
5 process_exception 如果view函数报错,则执行 可以对views报错做特殊处理,没出错则不执行
6 process_template_response 默认不执行,如果views中的函数,返回的对象中具有render方法,则这个函数会执行。没什么用,知道就可以。
缓存:
缓存的五种模式
默认配置:
调权重:
Django中提供三个级别的缓存应用:
1 对视图函数做缓存
超时时间:10s
如果函数参数不同,缓存则不同
2 对单个HTML标签做缓存:
3 全站缓存
例如博客
实现方式:借用中间件原理
总结:
缓存有五种配置方式,三种应用方式,了解其实现原理
测试时最简单的是文件缓存模式。
根据生命周期的原理,三种应用方式的优先级:1全站 > 2视图函数 > 3缓存标签
信号:
钩子
信号导入:
原生内置信号:
信号关联函数:
信号注册
自定义信号:
1 创建信号
2 主动触发信号
3 信号中注册函数
相当于插拔式操作,降低耦合度
Form
完成:
-验证用户请求
-生成HTML标签(保留上一次提交的数据)
有3个简单形式:
<table>
obj.as_table
</table>
obj.as_p
obj.as_ul
但是建议使用上面第一种方式,自定制性比较强。
自定义:
类
字段
插件(生成HTML)
初始化操作:
学习笔记官方;
https://www.cnblogs.com/wupeiqi/articles/6144178.html
插件里面都可以增加Attrs进行属性定制
作业:
做什么随意
以下要求:
用户登录验证用session
标准:完成一个组件
新URL方式
Form验证
尽量多的用本次知识点
中间件:IP过滤
信号:增减数据时做记录
CSRF的应用
缓存的使用