欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Django框架 信號(hào)調(diào)度原理解析

 更新時(shí)間:2019年09月04日 09:42:00   作者:高~雅  
這篇文章主要介紹了Django框架 信號(hào)調(diào)度原理解析,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下

Django中提供了“信號(hào)調(diào)度”,用于在框架執(zhí)行操作時(shí)解耦。通俗來講,就是一些動(dòng)作發(fā)生的時(shí)候,信號(hào)允許特定的發(fā)送者去提醒一些接受者。

Django內(nèi)置信號(hào)

Model signals
  pre_init          # django的modal執(zhí)行其構(gòu)造方法前,自動(dòng)觸發(fā)
  post_init          # django的modal執(zhí)行其構(gòu)造方法后,自動(dòng)觸發(fā)
  pre_save          # django的modal對(duì)象保存前,自動(dòng)觸發(fā)
  post_save          # django的modal對(duì)象保存后,自動(dòng)觸發(fā)
  pre_delete         # django的modal對(duì)象刪除前,自動(dòng)觸發(fā)
  post_delete         # django的modal對(duì)象刪除后,自動(dòng)觸發(fā)
  m2m_changed         # django的modal中使用m2m字段操作第三張表(add,remove,clear)前后,自動(dòng)觸發(fā)
  class_prepared       # 程序啟動(dòng)時(shí),檢測(cè)已注冊(cè)的app中modal類,對(duì)于每一個(gè)類,自動(dòng)觸發(fā)
Management signals
  pre_migrate         # 執(zhí)行migrate命令前,自動(dòng)觸發(fā)
  post_migrate        # 執(zhí)行migrate命令后,自動(dòng)觸發(fā)
Request/response signals
  request_started       # 請(qǐng)求到來前,自動(dòng)觸發(fā)
  request_finished      # 請(qǐng)求結(jié)束后,自動(dòng)觸發(fā)
  got_request_exception    # 請(qǐng)求異常后,自動(dòng)觸發(fā)
Test signals
  setting_changed       # 使用test測(cè)試修改配置文件時(shí),自動(dòng)觸發(fā)
  template_rendered      # 使用test測(cè)試渲染模板時(shí),自動(dòng)觸發(fā)
Database Wrappers
  connection_created     # 創(chuàng)建數(shù)據(jù)庫(kù)連接時(shí),自動(dòng)觸發(fā)

對(duì)于Django內(nèi)置的信號(hào),僅需注冊(cè)指定信號(hào),當(dāng)程序執(zhí)行相應(yīng)操作時(shí),自動(dòng)觸發(fā)注冊(cè)函數(shù):

示例:

#在model表中添加/刪除記錄時(shí)執(zhí)行響應(yīng)的方法
from django.db.models import signals

def before_save1(*args,**kwargs):
  print('有車來了,我要服務(wù)了--》',args,kwargs)

def before_save2(*args,**kwargs):
  print('有車來了,我要服務(wù)了--》',args,kwargs)

def after_save1(*args,**kwargs):
  print('有車來了,完事了--》',args,kwargs)

signals.pre_save.connect(before_save1)
signals.pre_save.connect(before_save2)
signals.post_save.connect(after_save1)

自定義信號(hào)

定義信號(hào)

import django.dispatch
pizza_done = django.dispatch.Signal(providing_args=["toppings", "size"])

注冊(cè)信號(hào)

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

觸發(fā)信號(hào)

from 路徑 import pizza_done
pizza_done.send(sender='seven',toppings=123, size=456)

由于內(nèi)置信號(hào)的觸發(fā)者已經(jīng)集成到Django中,所以其會(huì)自動(dòng)調(diào)用,而對(duì)于自定義信號(hào)則需要開發(fā)者在任意位置觸發(fā)。 

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • python 對(duì)圖片進(jìn)行簡(jiǎn)單的處理

    python 對(duì)圖片進(jìn)行簡(jiǎn)單的處理

    介紹一些圖片處理的Python代碼,有了這些處理代碼,我們可以很方便的處理一些圖片,Python這里處理圖片一般都使用Pillow包,有此需求的朋友可以參考下
    2021-06-06
  • Python?Fire實(shí)現(xiàn)自動(dòng)生成命令行接口

    Python?Fire實(shí)現(xiàn)自動(dòng)生成命令行接口

    命令行程序是平時(shí)寫一些小工具時(shí)最常用的方式,隨著命令行程序功能的豐富,也就是參數(shù)多了以后,解析和管理參數(shù)之間的關(guān)系會(huì)變得越來越繁重,而本次介紹的?Fire?庫(kù)正好可以解決這個(gè)問題,下面我們就來看看具體實(shí)現(xiàn)方法吧
    2023-09-09
  • 基于Python實(shí)現(xiàn)將列表數(shù)據(jù)生成折線圖

    基于Python實(shí)現(xiàn)將列表數(shù)據(jù)生成折線圖

    這篇文章主要介紹了如何利用Python中的pandas庫(kù)和matplotlib庫(kù),實(shí)現(xiàn)將列表數(shù)據(jù)生成折線圖,文中的示例代碼簡(jiǎn)潔易懂,需要的可以參考一下
    2022-03-03
  • Dephi逆向工具Dede導(dǎo)出函數(shù)名MAP導(dǎo)入到IDA中的實(shí)現(xiàn)方法

    Dephi逆向工具Dede導(dǎo)出函數(shù)名MAP導(dǎo)入到IDA中的實(shí)現(xiàn)方法

    這篇文章主要介紹了Dephi逆向工具Dede導(dǎo)出函數(shù)名MAP導(dǎo)入到IDA中,通過這個(gè)腳本,我們就可以把專業(yè)dephi程序分析的結(jié)果,轉(zhuǎn)移到IDA專業(yè)逆向代碼分析的平臺(tái),實(shí)現(xiàn)聯(lián)動(dòng),需要的朋友可以參考下
    2022-08-08
  • python適合人工智能的理由和優(yōu)勢(shì)

    python適合人工智能的理由和優(yōu)勢(shì)

    在本篇文章里小編給大家分享了關(guān)于python適合人工智能的理由和優(yōu)勢(shì)以及相關(guān)知識(shí)點(diǎn),需要的朋友們學(xué)習(xí)下。
    2019-06-06
  • python調(diào)用opencv實(shí)現(xiàn)貓臉檢測(cè)功能

    python調(diào)用opencv實(shí)現(xiàn)貓臉檢測(cè)功能

    這篇文章主要介紹了python調(diào)用opencv實(shí)現(xiàn)貓臉檢測(cè)功能,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-01-01
  • python注釋和運(yùn)算符詳解

    python注釋和運(yùn)算符詳解

    這篇文章主要為大家介紹了python注釋和運(yùn)算符,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2021-12-12
  • 使用?OpenCV?開發(fā)虛擬鍵盤的方法

    使用?OpenCV?開發(fā)虛擬鍵盤的方法

    OpenCV是一個(gè)強(qiáng)大的圖像處理工具,用于機(jī)器學(xué)習(xí)、圖像處理等的跨平臺(tái)開源庫(kù),用于開發(fā)實(shí)時(shí)計(jì)算機(jī)視覺應(yīng)用程序,本文重點(diǎn)給大家介紹使用?OpenCV?開發(fā)虛擬鍵盤的方法,感興趣的朋友一起看看吧
    2021-11-11
  • python 點(diǎn)云地面點(diǎn)濾波-progressive TIN densification(PTD)算法介紹

    python 點(diǎn)云地面點(diǎn)濾波-progressive TIN densification(PTD)算法介紹

    關(guān)于地面點(diǎn)濾波的概念我們要與孤立點(diǎn)(outlier)濾波區(qū)分開,孤立點(diǎn)濾波可以理解為圖像中的去噪,去除數(shù)據(jù)測(cè)量過程中受到飛鳥、多路徑效應(yīng)所產(chǎn)生的遠(yuǎn)低于/高于其他數(shù)據(jù)的點(diǎn)。今天通過本文給大家分享python PTD點(diǎn)云地面點(diǎn)濾波的相關(guān)知識(shí),一起看看吧
    2021-08-08
  • 利用python清除移動(dòng)硬盤中的臨時(shí)文件

    利用python清除移動(dòng)硬盤中的臨時(shí)文件

    本篇文章的目的是在移動(dòng)硬盤插入到電腦的同時(shí),利用Python自動(dòng)化和Windows服務(wù)刪除掉這些臨時(shí)文件。感興趣的朋友可以了解下
    2020-10-10

最新評(píng)論