Flask 第十七話之訊號

2022-08-25 00:03:09 字數 2177 閱讀 1240

一、安裝:預設跟隨flask一起安裝

pip install blinker

二、自定義訊號

第一步:定義訊號

from blinker import

namespace

ns =namespace()

fire_signal = ns.signal('

fire

')

第二步:監聽訊號

def

fire_func(sender):

print("

傳送訊號者

",sender)

print("

觸發了fire_signal訊號")

fire_signal.connect(fire_func)

第三步:傳送訊號

fire_signal.send()

舉個梨子:登陸資訊記錄

from flask import

flask,request,g

import

signals)'

/login')

deflogin():

u = request.args.get('u'

)

ifu:

g.u =u

signals.login_signal.send()

return

'登陸成功

'return

'登陸失敗''

/')def

index():

return'首頁

'if__name__ == '

__main__':

signals.py

from blinker import

namespace

from datetime import

datetime

from flask import

request,g

#建立訊號

ns =namespace()

login_signal = ns.signal('

login')

deflogin_log(sender):

now =datetime.now()

ip =request.remote_addr

print("

".format(g.u,now,ip))

#監聽訊號

login_signal.connect(login_log)

三、內建訊號

舉個梨子

from flask import

flask,template_rendered,render_template,got_request_exception

)def

template_rendered_func(sender,template,context):

"""

"""print("

sender:

",sender)

print("

template:

",template)

print("

context:

",context)

template_rendered.connect(template_rendered_func)

def got_request_exception_func(sender,*args,**kwargs):

""" kwargs:

"""print("

sender:

", sender)

print("

args:

", args)

print("

kwargs:

", kwargs)

got_request_exception.connect(got_request_exception_func)'/

')defindex():

a = 1/0

return render_template('

index.html

',a=a)

if__name__ == '

__main__':

第十七周總結

周工作總結及計畫表 部 門 理工大學 姓 名 冉濤 入 職 時 間 2015.7.5 本週已完成工作內容及總結 1 基本完成課程設計要求的三道題目,但還有一些小地方沒有做好,主要是在一些異常處理方面,主要是從控制台輸入時的型別轉換異常,以及gui介面的輸入為空的異常和型別轉換異常。2 課程設計的第四...

JAVA第十七課

一 序列化與反序列化 序列化是將物件的狀態寫入特定的流中的過程 反序列化則是從特定的流中獲取資料重新構建物件的過程 二 實現序列化的步奏 1 實現serilizable介面。2 建立物件輸出流 3 呼叫writeobject 方法將物件寫入檔案 4 關閉物件輸出流 三 常見異常 notseriali...

第十七周總結

本週主要學習了spring框架和mybatis框架,接觸到框架後最大的感觸就是原來 編寫可以變得如此簡便,之前複雜的編寫過程被簡化了許多,專案的開發效率自然也得到極大提公升。感覺在spring的學習中最大的困難是對這種框架模式的理解,學了一天到最後也不知道spring到底是什麼,可以用來幹什麼,怎麼...