django的内置信号

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 signalspre_migrate   执行migrate命令之前,自动触发post_migrate    执行migrate命令之后,自动触发
Request/Response  signalsrequest_started  请求到来之前,自动触发request_finished  请求结束后,自动触发

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

Databse   signalsconnections_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)


原文地址:https://www.cnblogs.com/yunxintryyoubest/p/9745164.html

时间: 2024-10-07 04:29:04

django的内置信号的相关文章

2.4.1、Django使用内置的Admin管理用户

再打开session之后,接下来: 首先在settings.py中,打开auth,contenttypes,sessions,admin应用,如下代码中红色部分: INSTALLED_APPS = ( 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', #'django.contrib.sites', #'django.contrib.messages', #'django.contri

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

一.引子 在操作数据的时候,假设我们需要记录一些日志,这个时候,我们需要用什么来显示这个需求呢?装饰器?装饰器只能先实现整体的操作.在django 里面有这么一个东西--信号 下面我们就来了解了解它. 操作对象前后,django都会预留两个钩子,它是用signals.post_save.send,表示触发一个信号.所以比如说我们在操作数据库的时候,要在插入数据之前写入日志,插入完成之后也写入日志,那这个就会用到我们今天的django信号.Django中提供了“信号调度”,用于在框架执行操作时解耦

Django扩展内置User类

内置User类 使用内置User可以方便实现登录验证,利用Admin管理界面还可以方便添加.删除.修改用户. 一个内置的User类定义了以下字段: username: 用户名 password: 密码 first_name: 姓名first last_name: 姓名last email: 邮箱 groups: Group类多对多的关系对象管理器 user_permissions: Permission类多对多的关系对象管理器 is_staff: 是否工作人员 is_active: 是否激活 i

django+mongodb 内置用户控制

0x01 项目:django2.1 数据库:mongodb 这是一个很蛋疼的组合 mongodb并非官方支持使用的数据库,这意味着要使用user group permissions等进行用户和权限控制,需要找第三方包,必要时还要重写模型. 在此:能用mysql等其他的还是先用吧(https://www.zhihu.com/question/19818326) django+mongo的严重问题是:文档严重缺失!找了一下午的"user添加入group中",没有,只能自己写了. Mongo

Django Form 内置字段

常用字段: Field required=True, 是否允许为空 widget=None, HTML插件 label=None, 用于生成Label标签或显示内容 initial=None, 初始值 help_text='', 帮助信息(在标签旁边显示) error_messages=None, 错误信息 {'required': '不能为空', 'invalid': '格式错误'} show_hidden_initial=False, 是否在当前插件后面再加一个隐藏的且具有默认值的插件(可用

django 模版内置的过滤器

一.add 将传进来的参数添加到原来的值上面.这个过滤器会尝试将“值”和“参数”转换成整形然后进行相加.如果转换成整形过程中失败了,那么将会将“值”和“参数”进行拼接.如果是字符串,那么会拼接成字符串,如果是列表,那么会拼接成一个列表.实例代码如下: {{ value|add:"2"}} 如果value是等于4,那么结果将是6.如果value是等于一个普通的字符串,如‘abc’,那么结果将是abc2. 二.cut 移除值中所有指定的字符串.类似于python中的replace(args

Django内置过滤器详解附代码附效果图--附全部内置过滤器帮助文档

前言 基本环境 Django版本:1.11.8 Python版本:3.6 OS: win10 x64 本文摘要 提供了常用的Django内置过滤器的详细介绍,包括过滤器的功能.语法.代码和效果示例. 本文完整项目文件代码下载地址:完整示例 Django完整内置过滤器帮助文档:Django内置过滤器完整版 参考文献:Django 中文文档 1.8 内置过滤器 注意:所有带参数的过滤器,在使用时,冒号:和参数中间不能有空格. add加 功能: 把add后的参数num加给value: 数字相加会进行算

Django内置重置密码的功能(发邮箱)

首先我们要想用Django内置的重置密码的功能,我们要知道Django内置的函数是怎么写的 def password_reset(request, template_name='registration/password_reset_form.html', email_template_name='registration/password_reset_email.html', subject_template_name='registration/password_reset_subject.

Django内置模板标签

Django内置标签总览 可以查询下表来总览Django的内置标签: 标签 说明 autoescape 自动转义开关 block 块引用 comment 注释 csrf_token CSRF令牌 cycle 循环对象的值 debug 调试模式 extends 继承模版 filter 过滤功能 firstof 输出第一个不为False的参数 for 循环对象 for … empty 带empty说明的循环 if 条件判断 ifequal 如果等于 ifnotequal 如果不等于 ifchange