Django signal 信号机制的使用

Posted lowmanisbusy

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Django signal 信号机制的使用相关的知识,希望对你有一定的参考价值。

Django中提供了"信号调度",用于在框架执行操作时解耦.

一些动作发生的时候,系统会根据信号定义的函数执行相应的操作

一.Django中内置的 signal 类型主要包含以下几种

1.Model_signals

pre_init                        # Django中的model对象执行其构造方法前,自动触发
post_init                       # Django中的model对象执行其构造方法后,自动触发
pre_save                        # Django中的model对象保存前,自动触发
post_save                       # Django中的model对象保存后,自动触发
pre_delete                      # Django中的model对象删除前,自动触发
post_delete                     # Django中的model对象删除后,自动触发
m2m_changed                     # Django中的model对象使用m2m字段操作数据库的第三张表(add,remove,clear,update),自动触发
class_prepared                  # 程序启动时,检测到已注册的model类,对于每一个类,自动触发

2.Managemeng_signals

pre_migrate                     # 执行migrate命令前,自动触发
post_migrate                    # 执行migrate命令后,自动触发 

3.Request/response_signals

request_started                 # 请求到来前,自动触发
request_finished                # 请求结束后,自动触发
got_request_exception           # 请求异常时,自动触发

4.Test_signals

setting_changed                 # 配置文件改变时,自动触发
template_rendered               # 模板执行渲染操作时,自动触发

5.Datebase_Wrapperd

connection_created              # 创建数据库连接时,自动触发

 

二.对于Django内置的信号,仅需注册指定信号,当程序执行相应操作时,系统会自动触发注册函数

在某个应用(app)目录下的__init__.py文件中

from django.db.models

 

 

 

 

 

 

以上是关于Django signal 信号机制的使用的主要内容,如果未能解决你的问题,请参考以下文章

django信号 signal

Django 信号signal

信号 signal

3分钟看懂Python后端必须知道的Django的信号机制!

django 内置“信号”机制和自定义方法

ECF机制:信号 (Signal)