信號

Django信號就是框架在執(zhí)行過程中一些動作發(fā)生的時候允許特定的一些發(fā)送者去執(zhí)行一定的函數(shù)和功能

django內(nèi)置信號

Model signals
    pre_init                    # django的modal執(zhí)行其構(gòu)造方法前,自動觸發(fā),也就是實例化
    post_init                   # django的modal執(zhí)行其構(gòu)造方法后疾掰,自動觸發(fā)
    pre_save                    # django的modal對象保存前,自動觸發(fā)
    post_save                   # django的modal對象保存后麻汰,自動觸發(fā)
    pre_delete                  # django的modal對象刪除前,自動觸發(fā)
    post_delete                 # django的modal對象刪除后润樱,自動觸發(fā)
    m2m_changed                 # django的modal中使用m2m字段操作第三張表(add,remove,clear)前后,自動觸發(fā)
    class_prepared              # 程序啟動時齿诉,檢測已注冊的app中modal類竣蹦,對于每一個類顶猜,自動觸發(fā)
Management signals
    pre_migrate                 # 執(zhí)行migrate命令前,自動觸發(fā)
    post_migrate                # 執(zhí)行migrate命令后痘括,自動觸發(fā)
Request/response signals
    request_started             # 請求到來前长窄,自動觸發(fā)
    request_finished            # 請求結(jié)束后,自動觸發(fā)
    got_request_exception       # 請求異常后纲菌,自動觸發(fā)
Test signals
    setting_changed             # 使用test測試修改配置文件時挠日,自動觸發(fā)
    template_rendered           # 使用test測試渲染模板時,自動觸發(fā)
Database Wrappers
    connection_created          # 創(chuàng)建數(shù)據(jù)庫連接時翰舌,自動觸發(fā)

信號和中間件的區(qū)別

  • 中間件:只在入口和出口

  • 信號:在內(nèi)部有很多嚣潜,幾乎每個操作都有

使用方法

# 導(dǎo)入數(shù)據(jù)庫
import pymysql
pymysql.install_as_MySQLdb()

# 導(dǎo)入內(nèi)置信號
from django.db.backends.signals import xxoo
# 寫執(zhí)行內(nèi)容
def callback(sender, **kwargs):
        print("xxoo_callback", sender, kwargs)
        print(sender,kwargs)
# 也可以執(zhí)行多個函數(shù) 
def callback1(sender, **kwargs):
        print("xxoo_callback", sender, kwargs)
        print(sender,kwargs)

      
xxoo.connect(callback)
xxoo.connect(callback1)
  • 為了保證在程序運行的時候就執(zhí)行信號,可以將信號寫入init.py 文件里面
  • 所有信息都封裝在sender以及kwargs里面
  • 如果需要添加或者刪除某個功能的話椅贱,可以直接對函數(shù)進行操作懂算,不用修改原來的代碼

自定義信號

a. 定義信號

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

b. 注冊信號

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

c. 觸發(fā)信號

from 路徑 import pizza_done

# 這句話寫在哪說明在哪觸發(fā)信號
pizza_done.send(sender='seven',toppings=123, size=456)

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

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市山橄,隨后出現(xiàn)的幾起案子酸役,更是在濱河造成了極大的恐慌,老刑警劉巖驾胆,帶你破解...
    沈念sama閱讀 206,602評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異贱呐,居然都是意外死亡丧诺,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,442評論 2 382
  • 文/潘曉璐 我一進店門奄薇,熙熙樓的掌柜王于貴愁眉苦臉地迎上來驳阎,“玉大人,你說我怎么就攤上這事馁蒂『峭恚” “怎么了?”我有些...
    開封第一講書人閱讀 152,878評論 0 344
  • 文/不壞的土叔 我叫張陵沫屡,是天一觀的道長饵隙。 經(jīng)常有香客問我,道長沮脖,這世上最難降的妖魔是什么金矛? 我笑而不...
    開封第一講書人閱讀 55,306評論 1 279
  • 正文 為了忘掉前任芯急,我火速辦了婚禮,結(jié)果婚禮上驶俊,老公的妹妹穿的比我還像新娘娶耍。我一直安慰自己,他們只是感情好饼酿,可當(dāng)我...
    茶點故事閱讀 64,330評論 5 373
  • 文/花漫 我一把揭開白布榕酒。 她就那樣靜靜地躺著,像睡著了一般故俐。 火紅的嫁衣襯著肌膚如雪想鹰。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,071評論 1 285
  • 那天购披,我揣著相機與錄音杖挣,去河邊找鬼。 笑死刚陡,一個胖子當(dāng)著我的面吹牛惩妇,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播筐乳,決...
    沈念sama閱讀 38,382評論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼歌殃,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了蝙云?” 一聲冷哼從身側(cè)響起氓皱,我...
    開封第一講書人閱讀 37,006評論 0 259
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎勃刨,沒想到半個月后波材,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,512評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡身隐,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 35,965評論 2 325
  • 正文 我和宋清朗相戀三年廷区,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片贾铝。...
    茶點故事閱讀 38,094評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡隙轻,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出垢揩,到底是詐尸還是另有隱情玖绿,我是刑警寧澤,帶...
    沈念sama閱讀 33,732評論 4 323
  • 正文 年R本政府宣布叁巨,位于F島的核電站斑匪,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏俘种。R本人自食惡果不足惜秤标,卻給世界環(huán)境...
    茶點故事閱讀 39,283評論 3 307
  • 文/蒙蒙 一绝淡、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧苍姜,春花似錦牢酵、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,286評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至垫释,卻和暖如春丝格,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背棵譬。 一陣腳步聲響...
    開封第一講書人閱讀 31,512評論 1 262
  • 我被黑心中介騙來泰國打工显蝌, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人订咸。 一個月前我還...
    沈念sama閱讀 45,536評論 2 354
  • 正文 我出身青樓曼尊,卻偏偏與公主長得像,于是被迫代替她去往敵國和親脏嚷。 傳聞我的和親對象是個殘疾皇子骆撇,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 42,828評論 2 345

推薦閱讀更多精彩內(nèi)容

  • Django 提供一個“信號分發(fā)器”,允許解耦的應(yīng)用在框架的其它地方發(fā)生操作時會被通知到父叙。簡單來說神郊,信號允許若干 ...
    與蟒唯舞閱讀 1,324評論 0 1
  • Refer to: www.threemeal.com/blog/12/ 中間件 中間件是一個鉤子框架,它們可以介...
    蘭山小亭閱讀 16,468評論 9 165
  • 這兩幅畫里的第一幅是因為畫砸了趾唱, 把它剪下來涌乳,貼到另一張紙上接著畫得。 衣服涂黑甜癞,是為了掩飾錯誤爷怀。 順著第一幅,我...
    阿噸閱讀 776評論 9 18
  • 爸爸終于搬到弟弟那里去住了带欢。 搬到新家才知道,真是需要好多東西呀烤惊。走的時候只是先拿了一些必需品乔煞,準(zhǔn)備其他的到時再買...
    金明啊閱讀 186評論 0 0
  • 我討厭比較,和自己好的人比較柒室,會嫉妒渡贾,會羨慕,會失落雄右。 更厭惡比較空骚,和自己差的人比較纺讲,會拉低自己的層次,會打消自己...
    迷路的小象閱讀 227評論 2 2