iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >Django——信号
  • 517
分享到

Django——信号

信号Django 2023-01-30 22:01:57 517人浏览 泡泡鱼

Python 官方文档:入门教程 => 点击学习

摘要

Django——signal 其实可以理解为djanGo内部的钩子,当某一个事件发生时,其它程序会触发并对其作出相关反应,通过signal回调处理函数(receivers),从而更大程度的解耦我们的项目   导入类库 1 fro

Django——signal

其实可以理解为djanGo内部的钩子,当某一个事件发生时,其它程序会触发并对其作出相关反应,通过signal回调处理函数(receivers),从而更大程度的解耦我们的项目

 

  • 导入类库
     1 from django.shortcuts import render
     2 from django.Http import HttpResponse
     3 from django.core.signals import request_finished,request_started,got_request_exception
     4 from django.dispatch import receiver
     5 from django.dispatch.dispatcher import Signal
     6 from django.db.models import signals
     7 from django.db.models.signals import pre_save,pre_delete
     8 from django.db.models.base import Model
     9 import django.dispatch
    10 from app.models import SomeModel

     

  • Django内置信号

 

1 @receiver(request_started)
2 def requeststarted(sender,**kwargs):
3     print(sender,'这是request_started')
4 request_started.connect(requeststarted)#请求完成信号
  • 内置信号触发方式
    • 先定义信号激活时要触发的函数,然后用 信号类型名.connect(函数名),即可达到与第二种装饰器方法相同的效果
    • 一个receiver装饰器,里面第一个参数放信号的类型,第二个参数放附加参数,然后装饰信号激活时要触发的函数

      1 @receiver(pre_save)    #model保存信号
      2 def presave(sender,**kwargs):
      3     print(sender,'这是pre_save')
      4 
      5 @receiver(pre_delete)    #model删除信号
      6 def predelete(sender,**kwargs):
      7     print(sender,'这是pre_delete')
  • 自定义信号

没有内置这种信号,用户可自定义,与内置信号使用的第一种方法相同

1 bus_comming = django.dispatch.Signal(providing_args=['plate_numbers'])
2 
3 def callback(sender,**kwargs):
4     print(sender,kwargs,'这是自定义信号')
5 
6 bus_comming.connect(callback)
7 bus_comming.send(sender='lijingbo',plate_numbers=666)

 

--结束END--

本文标题: Django——信号

本文链接: https://www.lsjlt.com/news/179575.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Django——信号
    django——signal 其实可以理解为django内部的钩子,当某一个事件发生时,其它程序会触发并对其作出相关反应,通过signal回调处理函数(receivers),从而更大程度的解耦我们的项目   导入类库 1 fro...
    99+
    2023-01-30
    信号 Django
  • 深入理解Django的信号机制
    目录Django的信号Django信号的使用自定义信号扩展:查看Django信号的接受者扩展:Django内置信号Django的信号 Django的信号机制不同于Linux的信号机制...
    99+
    2023-02-08
    Django 信号机制
  • Django的signal信号机制如何使用
    本文小编为大家详细介绍“Django的signal信号机制如何使用”,内容详细,步骤清晰,细节处理妥当,希望这篇“Django的signal信号机制如何使用”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深...
    99+
    2024-04-02
  • 正确的理解和使用Django信号(Signals)
    目录Django信号的一个简单例子利用Django信号实现不同模型的联动更新Django常用内置信号如何正确放置Django信号的监听函数代码 小结Django 提供一个了“信号分发...
    99+
    2024-04-02
  • 「信号机制」Python信号处理—sig
    转载请注明出处:https://blog.csdn.net/jinixin/article/details/80383177   本文是信号机制三篇记录中的第二篇,介绍Python语言中负责信号处理的signal模块,并会给出一些小dem...
    99+
    2023-01-31
    信号处理 信号 机制
  • 【Linux从入门到精通】信号(信号保存 & 信号的处理)
      本篇文章接着信号(初识信号 & 信号的产生)进行讲解。学完信号的产生后,我们也了解了信号的一些结论。同时还留下了很多疑问: 上篇文章所说的所有信号产生,最终都要有OS来进行执行,为什么呢?OS是进程的管理者。信号的处理是否是立即...
    99+
    2023-09-29
    运维 linux 信号处理
  • Flask信号
    信号是可以在固定的事件发生时执行某些事情 一个简单的使用信号的例子: from flask import Flask,signals app = Flask(__name__) def signal_func(*args,**kwa...
    99+
    2023-01-31
    信号 Flask
  • linux信号解释(3)--信号处理机制
        如果需要进程捕获某个信号,并作出相应的处理,就需要注册信号处理函数(其实就是内核里需要识别信号函数,类似C语言里的include某函数库)。    处理信号就类似软中断,内核为每个进程准备了一段信号向量表,记录信号的处理机制。当某个...
    99+
    2023-01-31
    信号处理 信号 机制
  • 【linux】进程信号——信号的保存和处理
    文章目录 一、阻塞信号1.1 信号的相关概念1.2 在内核中的构成 二、捕捉信号概念2.1 内核态和用户态2.2 信号捕捉流程图 三、信号操作3.1 sigset_t信号集3.2 信号集操作函数3.2.1 更改block表s...
    99+
    2023-08-20
    linux 运维 服务器
  • Linux--进程信号
    前言         无人问津也好,技不如人也罢,你都要试着安静下来,去做自己该做的事情,而不是让烦恼和焦虑毁掉你不就不多的热情和定力。心可以碎,手不能停,该干什么干什么,在崩溃中继续努力前行,这才是一个成年人的素养。           ...
    99+
    2023-08-31
    linux 运维 服务器
  • Linux进程信号
    文章目录 信号入门什么是linux信号?信号处理的常见方式查看系统定义的信号列表 产生信号通过终端按键产生信号调用系统函数向进程发送信号由软件条件产生信号硬件异常产生信号 阻塞信号阻塞...
    99+
    2023-09-06
    信号处理 信息与通信 linux 搜索引擎 gitee
  • 【Linux】进程信号
    ​🌠 作者:@阿亮joy. 🎆专栏:《学会Linux》 🎇 座右铭:每个优秀的人都有一段沉默的时光,那段时光是付出了很多努力却得不到结果的日子,我们...
    99+
    2023-09-12
    linux 运维 服务器 进程信号
  • 计算机网络中哪些信号属于模拟信号
    这篇文章给大家分享的是有关计算机网络中哪些信号属于模拟信号的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。实际生产生活中的各种物理量,如摄相机摄下的图像、录音机录下的声音、车间控制室所记录的压力、流速、转速、湿度等...
    99+
    2023-06-20
  • ECF机制:信号 (Signal)
        💭 写在前面:ECF (异常控制流) 机制是存在于系统的所有层级中的,所以这一块的知识我们需要系统地去学习。前几章我们探讨过了异常 (Exceptions),由硬件触发,在内核代码中处理。讲解了进程的上下文切换 (...
    99+
    2023-09-06
    linux 运维 服务器 操作系统
  • Go:获取信号源
    php小编百草推荐的一款实用工具是Go:获取信号源。这款工具可以帮助开发者获取信号源的相关信息,包括信号强度、信号类型、运营商等。通过使用该工具,开发者可以方便地进行信号测试和优化,提...
    99+
    2024-02-12
  • 【Linux】进程信号(上)
    文章目录 1.信号概念理解信号产生信号保存信号处理 2. 信号的产生证明输入 CTRL C 就是向前台进程发送信号signal 函数内部参数传递的理解对于信号自定义动作的捕捉问题 3.信号产生的方式1.从键盘输入2.使用...
    99+
    2023-08-20
    linux 运维 服务器
  • Python Signal(信号) 异步
      信号的概念 信号(signal)--     进程之间通讯的方式,是一种软件中断。一个进程一旦接收到信号就会打断原来的程序执行流程来处理信号。 几个常用信号: SIGINT     终止进程  中断进程  (control+c) SIG...
    99+
    2023-01-31
    信号 Python Signal
  • php如何处理信号
    这篇文章将为大家详细讲解有关php如何处理信号,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。我们常用的信号kill   sigterm sigkill【kill命令】ctrl+c sigint【...
    99+
    2023-06-21
  • 什么是信号量Semaphore
    这篇文章将为大家详细讲解有关什么是信号量Semaphore,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。本质就是 信号量模型,模型图如下:其中的 计数器 和...
    99+
    2024-04-02
  • linux的信号有哪些
    这篇“linux的信号有哪些”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“linux的信号...
    99+
    2023-04-06
    linux
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作