Flask之鉤子函式

2021-10-02 04:19:19 字數 3449 閱讀 4450

1、before_first_request

deffirst_request()

:print

'first time request'

2、before_request(使用較多)

defbefore_request()

:ifnothasattr

(g,'glo1'):

setattr

(g,'glo1'

,'想要設定的')

defteardown

(exc=

none):

if exc is

none

: db.session.commit(

)else

: db.session.rollback(

) db.session.remove(

)4、template_filter

"upper"

)def

upper_filter

(s):

return s.upper(

)5、context_processor

import os

#加鹽 混淆原資料的作用

'secret_key'

]=os.urandom(

24)

'/')

defhello_world()

:print

("hi"

) session[

'uname']=

"wukong"

return render_template(

"index.html"

) '/li'

)def

mylist()

:print

("mylist"

)# print("直接取出",g.user)

ifhasattr

(g,"user"):

print

("條件取出"

, g.user)

return render_template(

'list.html'

) def

before_request()

:#場景:若使用者已經登入了,驗證時把使用者名稱放入session中,之後取出來,放入鉤子函式

#以後訪問的檢視函式中可直接取出來使用

uname = session.get(

'uname'

)print

(uname)

if uname:

g.user = uname

defcontext_processor()

:ifhasattr

(g,'user'):

return

else

:return

if __name__ ==

'__main__'

: true

)6、errorhandler

常見的404錯誤處理:

import os

'/li'

)def

mylist()

:print

("mylist")if

hasattr

(g,"user"):

print

("條件取出"

, g.user)

return render_template(

'list.html'

)#多數是訪問頁面不存在時出現的錯誤

404)

defpage_not_found

(error)

:return render_template(

'404.html'),

404if __name__ ==

'__main__': )

常見的500錯誤處理:

import os

#加鹽 混淆原資料的作用

'secret_key'

]=os.urandom(

24)

'/')

defhello_world()

:print

("hi"

) session[

'uname']=

"wukong"

#製造乙個500錯誤

print

(g.user)

return render_template(

"index.html"

) '/li'

)def

mylist()

:print

("mylist")if

hasattr

(g,"user"):

print

("條件取出"

, g.user)

return render_template(

'list.html'

) 500

)def

server_error

(error)

:return render_template(

'500.html'),

500if __name__ ==

'__main__': )

import os

#加鹽 混淆原資料的作用

'secret_key'

]=os.urandom(

24)

'/')

defhello_world()

:print

("hi"

) session[

'uname']=

"wukong"

return render_template(

"index.html"

) 400

)def

args_error

(error)

:return

'您的引數不正確'

,400

#該功能需要先登入才能訪問

'/setting/'

)def

setting()

: uname = session.get(

"uname"

)if uname :

return

'歡迎來到設定頁面'

else

:# 如果沒有登入,這時候我就讓他跳轉到400錯誤

abort(

400)

return render_template(

'list.html'

)if __name__ ==

'__main__': )

mysql 鉤子函式 Flask鉤子函式是什麼

flask鉤子函式 在flask中鉤子函式是使用特定的裝飾器的函式。為什麼叫做鉤子函式呢,是因為鉤子函式可以在正常執行的 中,插入一段自己想要執行的 那麼這種函式就叫做鉤子函式。before first request flask專案第一次部署後會執行的鉤子函式。before request 請求已...

flask 鉤子函式使用

一 鉤子函式的概念 鉤子函式是windows訊息處理機制的一部分,通過設定 鉤子 應用程式可以在系統級對所有訊息 事件進行過濾,訪問在正常情況下無法訪問的訊息。鉤子的本質是一段用以處理系統訊息的程式,通過系統呼叫,把它掛入系統。二 常用的三大鉤子函式 註冊乙個函式,在處理第乙個請求之前執行.def ...

Flask中鉤子函式和Get Post請求

get請求是通過flask.requests.args來獲取 post請求是通過flask.requests.form來獲取 post注意 from flask import flask,render template,request def hello world return render te...