Python3.5 学习二十二

回顾: 

发送请求时:发送请求头和请求数据  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的应用

缓存的使用

原文地址:https://www.cnblogs.com/HU-HU/p/9682009.html