zoukankan      html  css  js  c++  java
  • django的内置信号

    Model  singnals
    pre_init 在model执行构造方法之前自动触发

    post_init django的model在执行构造方法之后,自动触发
    pre_save django的对象保存之前,自动触发
    post_save django的对象保存之后,自动触发
    pre_delete 这个是django的对象删除之前,自动触发
    post_delete django的的对象删除之后,自动触发
    m2m_changed 使用m2m的第三张表(add,remove,clear)前后,自动触发
    class_prepared 程序启动时,对已经注册的app的表,对于每一个类,自动触发

    Management signals
    pre_migrate 执行migrate命令之前,自动触发
    post_migrate 执行migrate命令之后,自动触发
    Request/Response  signals
    request_started 请求到来之前,自动触发
    request_finished 请求结束后,自动触发


    Test signals
    settings_chnaged 使用test测试配置文件时,自动触发
    settings_rendered 使用test测试渲染模板是,自动触发

    Databse signals
    connections_created 这个是创建数据库的时候,自动触发


    对于django的内置的信号,只需要注册相对应的信号(在project下的__init__最开始运行的时候里面注册),当程序执行的时候,就会自动触发

    ######################################################################################################
    project_singal 下面的__init__里面:
    #在这里面可以添加这个信号量

    from django.db.models import signals
    #导入这个信号量的模块
    print('执行这个singal的信号量的操作')

    #这个是一开始就会执行的操作
    def before_save(*args,**kwargs):
    print('打印出来',args,kwargs)
    signals.pre_save.connect(before_save)

    执行的结果:
    '''
    () {'signal': <django.db.models.signals.ModelSignal object at 0x0000022947A93080>, 'sender': <class 'app01.models.Booke'>, 'instance': <Booke: Booke object (None)>, 'raw': False, 'using': 'default', 'update_fields': None}

    '''
    # //这个会打印这个日志出来

    #################################################################################################
    views:

    from  app01.models import  *

    from django.shortcuts import HttpResponse

     

    def  action(requets):
    print('开始执行这个fun3的函数了')
    models.User.objects.filter(id=1).update(user_name='yun')##这个是可以更新这个数据进去
    models.Book.objects.create(book_name='简爱')###############这个是创建这个数据进去
    print('创建成功')
    return HttpResponse('fun3')
    ###############################################################
    models:
    class Book(models.Model):
      book_name=models.CharField(max_length=32,verbose_name='书籍名字')
     
    class  User(models.Model):
      user_name=models.Username(max_length=32)


  • 相关阅读:
    chapter 12_1 数据文件
    chapter11_3 字符串缓冲
    chapter11_2 Lua链表与队列
    chapter11_1 Lua数组、列表
    chapter9_4 非抢占式的多线程
    Java设计模式
    java内存回收机制
    javaIO流概述
    java集合概述
    java多线程
  • 原文地址:https://www.cnblogs.com/yunxintryyoubest/p/9745164.html
Copyright © 2011-2022 走看看