本文小編為大家詳細(xì)介紹“Django的signal信號(hào)機(jī)制如何使用”,內(nèi)容詳細(xì),步驟清晰,細(xì)節(jié)處理妥當(dāng),希望這篇“Django的signal信號(hào)機(jī)制如何使用”文章能幫助大家解決疑惑,下面跟著小編的思路慢慢深入,一起來學(xué)習(xí)新知識(shí)吧。
成都創(chuàng)新互聯(lián)公司服務(wù)項(xiàng)目包括寧安網(wǎng)站建設(shè)、寧安網(wǎng)站制作、寧安網(wǎng)頁制作以及寧安網(wǎng)絡(luò)營(yíng)銷策劃等。多年來,我們專注于互聯(lián)網(wǎng)行業(yè),利用自身積累的技術(shù)優(yōu)勢(shì)、行業(yè)經(jīng)驗(yàn)、深度合作伙伴關(guān)系等,向廣大中小型企業(yè)、政府機(jī)構(gòu)等提供互聯(lián)網(wǎng)行業(yè)的解決方案,寧安網(wǎng)站推廣取得了明顯的社會(huì)效益與經(jīng)濟(jì)效益。目前,我們服務(wù)的客戶以成都為中心已經(jīng)輻射到寧安省份的部分城市,未來相信會(huì)繼續(xù)擴(kuò)大服務(wù)區(qū)域并繼續(xù)獲得客戶的支持與信任!
Django中提供了"信號(hào)調(diào)度",用于在框架執(zhí)行操作時(shí)解耦,當(dāng)某些動(dòng)作發(fā)生的時(shí)候,系統(tǒng)會(huì)根據(jù)信號(hào)定義的函數(shù)執(zhí)行相應(yīng)的操作
一.Django中內(nèi)置的 signal 類型主要包含以下幾種
1.Model_signals
2.Managemeng_signals
3.Request/response_signals
4.Test_signals
5.Datebase_Wrapperd
二.對(duì)于Django內(nèi)置的信號(hào),僅需注冊(cè)指定信號(hào),當(dāng)程序執(zhí)行相應(yīng)操作時(shí),系統(tǒng)會(huì)自動(dòng)觸發(fā)注冊(cè)函數(shù)
1.以 post_save 信號(hào)類型進(jìn)行說明:
在相應(yīng)的應(yīng)用(app)目錄下的__ init__.py文件中進(jìn)行定義,(可以另外創(chuàng)建一個(gè).py文件, 再在__init__.py文件導(dǎo)入該文件)
創(chuàng)建函數(shù),監(jiān)聽信號(hào), 當(dāng)信號(hào)觸發(fā)時(shí),進(jìn)行函數(shù)的調(diào)用
2. request_finished 信號(hào)
這樣配置之后,django接收到所有的request請(qǐng)求結(jié)束以后,都會(huì)調(diào)用這個(gè)接收器回調(diào)函數(shù).
三.進(jìn)一步補(bǔ)充默認(rèn)的signals及其參數(shù)
模型的(django/db/models/signal.py)
用戶登錄的(django/contrib/auth/signals.py)
關(guān)于request請(qǐng)求的(django/core/signals.py)
數(shù)據(jù)庫(kù)連接的(django/db/backends/signals.py)
四.在個(gè)人的實(shí)際項(xiàng)目開發(fā)中,使用得比較多的信號(hào)類型就是django/db/models/signal.py(如:用戶注冊(cè)成功后發(fā)送郵件或進(jìn)行其他操作)以及用戶登錄的django/contrib/auth/signals.py(用戶登錄成功后,給用戶發(fā)送消息). 如果內(nèi)置的信號(hào)類型無法滿足需求,可以進(jìn)行自定義信號(hào), 這里不再贅述.
讀到這里,這篇“Django的signal信號(hào)機(jī)制如何使用”文章已經(jīng)介紹完畢,想要掌握這篇文章的知識(shí)點(diǎn)還需要大家自己動(dòng)手實(shí)踐使用過才能領(lǐng)會(huì),如果想了解更多相關(guān)內(nèi)容的文章,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。