1.Django中间件
- 使用步骤
步骤:
1、、先建一个文件夹,里面写一个py文件
2、、然后开始写类
1.中间件就是一个类,类里面写几个方法
class M1(MiddlewareMixin): 必须继承
def process_request(self,request): request:请求里面的所有的东西
print("m1.request_request")
这个方法里面别轻易返回值,要是有返回值就不再继续执行后面的了,执行自己的process_response和上边的response
一般是无返回值的:继续执行后续的中间件和视图函数
def process_response(self,request,response):
return response
2.在settings中的MIDDLEWARE加上路径
文件夹名称.py文件名称.类名
3.找到继承的那个类,吧那个类拿过来
一般不要用导入的方法,不然有时候更新了就没有这个类了,你就把它继承的那个类拿过来,
2.Django auth用户验证模块
3.Django中的信号及其用法
http://www.cnblogs.com/haiyan123/p/8259647.html
所谓信号,就类似于Spring中的监听器,当一些动作发生的时候,系统会根据信号定义的函数执行相应的操作
两种方式
- 在_init_中添加如下代码
from django.db.models.signals import pre_save,post_save
def pre_save_func(sender,**kwargs):
print("pre_save_func")
print("pre_save_msg:",sender,kwargs)
def post_save_func(sender,**kwargs):
print("post_save_func")
print("post_save_msg:",sender,kwargs)
pre_save.connect(pre_save_func) # models对象保存前触发callback函数
post_save.connect(post_save_func) # models对象保存后触发函数
- 在_init_中使用装饰器绑定
from django.core.signals import request_finished
from django.dispatch import receiver
@receiver(request_finished)
def callback(sender, **kwargs):
print("Request finished!")
自定义信号
http://www.cnblogs.com/haiyan123/p/8259647.html
由于内置信号的触发者已经集成到Django中,所以会自动调用,而对于自定义信号需要在任意位置触发
步骤
- 定义一个自定义信号singal_test.py
- 在_init_方法中为信号绑定回调函数
- 在views视图或者其他任意地方自己手动触发该信号
from singal_test import action
action.send(sender="python",aaa="111",bbb="222")
4.Django中的缓存
5.Model进阶,性能优化
http://www.cnblogs.com/yuanchenqi/articles/7570003.html
http://www.cnblogs.com/haiyan123/p/8027788.html