python(day22)

day22

知识点概要
– Session
– CSRF
– Model操作
– Form验证(ModelForm)
– 中间件
– 缓存
– 信号

内容详细:

1. Session
基于Cookie做用户验证时:敏感信息不适合放在cookie中

a. Session原理
Cookie是保存在用户浏览器端的键值对
Session是保存在服务器端的键值对

b. Cookie和Session对比

c. Session配置(缺少cache)

d. 示例:实现两周自动登陆
– request.session.set_expiry(60*10)
– SESSION_SAVE_EVERY_REQUEST = True

PS: cookie中不设置超时时间,则表示关闭浏览器自动清除

– session依赖于cookie
– 服务器session
request.session.get()
request.session[x] = x

request.session.clear()

– 配置文件中设置默认操作(通用配置):
SESSION_COOKIE_NAME = “sessionid” # Session的cookie保存在浏览器上时的key,即:sessionid=随机字符串(默认)
SESSION_COOKIE_PATH = “/” # Session的cookie保存的路径(默认)
SESSION_COOKIE_DOMAIN = None # Session的cookie保存的域名(默认)
SESSION_COOKIE_SECURE = False # 是否Https传输cookie(默认)
SESSION_COOKIE_HTTPONLY = True # 是否Session的cookie只支持http传输(默认)
SESSION_COOKIE_AGE = 1209600 # Session的cookie失效日期(2周)(默认)
SESSION_EXPIRE_AT_BROWSER_CLOSE = False # 是否关闭浏览器使得Session过期(默认)
# set_cookie(‘k’,123)
SESSION_SAVE_EVERY_REQUEST = False # 是否每次请求都保存Session,默认修改之后才保存(默认)

– 引擎的配置

2. CSRF
a. CSRF原理

b. 无CSRF时存在隐患

c. Form提交(CSRF)

d. Ajax提交(CSRF)
CSRF请求头 X-CSRFToken

6. 中间件

7. 缓存
5种配置
3种应用:
全局
视图函数
模板

8. 信号
– 内置信号
– 自定义
– 定义信号
– 出发信号
– 信号中注册函数

3. Model操作

a. 字段类型 + 参数

b. 连表字段 + 参数

c. Meta

d. SQL操作:
– 基本增删改查
– 进阶操作
– 正反查询
– 其他操作

e. 验证(弱)

4. Form操作
完成:
– 验证用户请求
– 生成HTML
(保留上一次提交的数据)

自定义:
– 类
– 字段(校验)
– 插件(生成HTML)

初始化操作:

============= 作业:xxxoo管理 =============
用户验证:session
新URL:Form验证
中间件:IP过滤
信号:记录操作
CSRF:

a. Form验证用户请求

b. Form生成HTML

c. Form字段详细(自定义字段,Model…) + 插件

d. 自定义验证(钩子以及__all__)

e. 注册示例:
用户名、密码、邮箱、手机号(RegexValidator或RegexField)、性别、爱好、城市

f. 初始化值

5. ModelForm

a. Model+Form功能集合

b. save

c. save + save_m2m

发表评论