zoukankan      html  css  js  c++  java
  • django进阶-信号

    信号
    django内置信号:
    Model signals
    pre_init # django的modal执行其构造方法前,自动触发
    post_init # django的modal执行其构造方法后,自动触发
    pre_save # django的modal对象保存前,自动触发
    post_save # django的modal对象保存后,自动触发
    pre_delete # django的modal对象删除前,自动触发
    post_delete # django的modal对象删除后,自动触发
    m2m_changed # django的modal中使用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 # 创建数据库连接时,自动触发

    内置信号的用法:
    1.创建信号py文件:
    from django.db.models.signals import pre_init, post_init # 导入信号模块

    def callback(sender, **kwargs): # 定义执行函数
    print("xxoo_callback")
    print(sender,kwargs)
    pre_init.connect(callback) # 调用执行函数
    2.实现信号函数触发:
    在需要添加信号的文件夹下的__init__.py文件里导入信号py文件

    自定义信号:
    1.定义信号(views文件中)
    import django.dispatch
    pizza_done = django.dispatch.Signal(providing_args=["toppings", "size"])
    2.注册信号(新建信号py文件中)
    def callback(sender, **kwargs):
    print("callback")
    print(sender,kwargs)
    pizza_done.connect(callback)
    3.触发信号(需要触发的py文件中)
    from 路径 import pizza_done

    pizza_done.send(sender='seven',toppings=123, size=456) # 写在需要触发的位置
  • 相关阅读:
    经典卷积神经网络算法(4):GoogLeNet
    经典卷积神经网络算法(3):VGG
    经典卷积神经网络算法(2):AlexNet
    经典卷积神经网络算法(1):LeNet-5
    卷积神经网络入门篇
    人工神经网络实践
    Python操作Oracle数据库:cx_Oracle
    源码剖析@ApiImplicitParam对@RequestParam的required属性的侵入性
    实战SpringCloud通用请求字段拦截处理
    Elasticsearch系列---生产集群部署(下)
  • 原文地址:https://www.cnblogs.com/gyk1030/p/9529770.html
Copyright © 2011-2022 走看看