热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Django20信号

Django信号使得某个操作之前能定制化一些任务-内置信号-导入fromdjango.core.signalsimportXX00-注册函数-自定义-自定义-定义信号importd
Django信号
            
    使得某个操作之前能定制化一些任务
        - 内置信号
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)前后,自动触发
class_prepared # 程序启动时,检测已注册的app中modal类,对于每一个类,自动触发
Management signals
pre_migrate # 执行migrate命令前,自动触发
post_migrate # 执行migrate命令后,自动触发
Request/response signals
request_started # 请求到来前,自动触发
request_finished # 请求结束后,自动触发
got_request_exception # 请求异常后,自动触发,中间件之前执行
Test signals
setting_changed # 使用test测试修改配置文件时,自动触发
template_rendered # 使用test测试渲染模板时,自动触发
Database Wrappers
connection_created # 创建数据库连接时,自动触发
         -导入
                from django.core.signals import XX00
 
            -注册函数
☆☆☆☆☆必须将函数import到项目的__init__.py中☆☆☆☆☆
signals.py ---> projectname.__init__.py import signals.py
def a1():
pass
def a2():
pass
pre_init.connect(a1)
pre_init.connect(a2)
顺序执行 a1,a2ender=‘seven‘,toppings=123, size=456)
  
- 自定义
  - 定义信号
import django.dispatch
pizza_done = django.dispatch.Signal(providing_args=["toppings", "size"])#触发信号者必须要传递2个参数

  - 信号中注册函数

def callback(sender, **kwargs):
print("callback")
print(sender,kwargs)
pizza_done.connect(callback)

  - 触发信号

    自己触发信号(测试),自定义的信号自能自己触发

from 路径 import pizza_done
pizza_done.send(sender=seven,toppings=123, size=456)
实例:
服务器CPU、内存等参数超过阀值,自动触发信号

Django-20-信号


推荐阅读
  • 又给自己挖了一个坑跳进去。KafkaManager使用单例模型获取到一个producer,然而自己代码里用的时候加了一个using然后自己在做测试的时候,for循环加10条数据发送 ... [详细]
  • Emgu 学习之HelloWorld
    安装和配置系统Win10,VS2013,下载Emgu安装包libemgucv-windesktop-3.4.3.3016安装到了E:\OpenCV\emgucv-windeskto ... [详细]
  • EL&&JSTL
    EL表达式概念ExpressionLanguage表达式语言。作用替换和简化jsp页面中java代码的编写语法${表达式}注意jsp默认支持el表达式的。如果要忽略el表达式可以使 ... [详细]
  • HDU 3487 Play with Chain
    题意:对序列取出连续的一段接到剩下的第k个值后面,或者把一段序列反转。解题思路:splay区间操作。解题代码:1FileName:hdu3487.cpp2Author:darkdr ... [详细]
  • 6.列表表格列表(1)liststyle基本语法语法取值使用说明设置列表项目相关样式。当liststyleimage和liststyletype都被指定了时,liststyleim ... [详细]
  • 简介if循环ifconditonthencommandselsecommandfielse这部分没有可以省略或者ifconditionthencommandselseifcondi ... [详细]
  • 1.简述OC中内存管理机制。与retain配对使用的方法是dealloc还是release,为什么?需要与alloc配对使用的方法是dealloc还是release,为什么?rea ... [详细]
  • jenkins 邮件配置步骤
    一、进行系统管理中的邮件配置步骤:1、设置ExtendedE-mailNotification二、对构建的job添加邮件发送的步骤: ... [详细]
  • http:nickycc.lofter.compost23e2a6_17d6a07http:blog.csdn.netl25000articledetails46842013htt ... [详细]
  • Unity中的事件监听
    Unity3D的uGUI系统的将UI可能触发的事件分为12个类型,即EventTriggerType枚举的12个值。如下图所示:先以PointerClick为例。这个是用于某点点击 ... [详细]
  • MATLAB分布拟合工具箱distributionFitter
    借助MATLAB(R2017b)分布拟合工具箱distributionFitter,我们可以快速地检查数据的分布。可以进行非参数密度估计(核平滑方法)和参数密度估计(Beta分布、 ... [详细]
  • Catalyst揭秘 Day1 Catalyst本地解析
    Catalyst本地解析今天开始讲下Catalyst,这是我们必须精通的内容之一:基本概念catalyst是一种解析器引擎,而不仅是sql解析引擎。如果研究下catalyst,可以 ... [详细]
  • Introspector类为通过工具学习有关受目标JavaBean支持的属性、事件和方法的知识提供了一个标准方法。对于这三种信息,Introspector将分别分析bean的类和 ... [详细]
  • 实验十:指针
    #includevoidsplitfloat(floatx,int*intpart,float*fracpart);intmain(void){intintpa ... [详细]
  • 之前一直不明白package与install的区别,今天测试了下。如果b项目依赖a项目,而a打了包(package),jar仅仅时打到了a项目的target下。这时编译b项目,还是 ... [详细]
author-avatar
丝兰郁香
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有