Django中间件,信号

1.Django中间件

http://www.cnblogs.com/haiyan123/p/7795948.html

  • 使用步骤
步骤:
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用户验证模块

http://www.cnblogs.com/haiyan123/p/7769176.html

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中的缓存

http://www.cnblogs.com/haiyan123/p/8424231.html

5.Model进阶,性能优化

http://www.cnblogs.com/yuanchenqi/articles/7570003.html
http://www.cnblogs.com/haiyan123/p/8027788.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值