flask的路由配置,特殊裝飾器

2022-05-15 16:45:01 字數 3232 閱讀 2880

1,flask中的路由

2,flask中的例項化配置

class debug(object):

4,blueprint

5,特殊裝飾器:

def af1(response)

正常:be1---be2---be3---af3---af2---af1

異常:be1---af3---af2---af1

def error404(args):

基於藍圖實現增刪改查資料,基於before_request session實現使用者校驗,可選errorhandler

具體**如下:

藍圖**:

from flask  importflask, request, render_template, redirect, session

from serv importusers

importweishenme

# 註冊配置類

# 註冊藍圖

defdetail():

return render_template("detail.html")

deflogin():

if request.method == "get":

return render_template("login1.html")

else:

session["user"] = request.form.get("user")

return redirect("/")

defxiaocai():

return "騷帆是一根小菜"

if __name__ == '__main__':

配置類:

classdebug(object):

debug=true

secret_key="xuexue"session_cookie_name="xiaoxue"

classtesting(object):

testing=true

secret_key="xiaopangpang"session_cookie_name="xueer"

classproduction(object):

secret_key="xueren"session_cookie_name="csrf_token"

from flask importflask, session, redirect, url_for, render_template, request

importweishenme

# 指定session的key是xuexue

# 註冊配置類

# 裝飾器

defouter(func):

def hahaha(*args, **kwargs):

if session["user"]:

print(session["user"])

ret = func(*args, **kwargs)

returnret

else:

return redirect("/login")

returnhahaha

@outer

defwc(nid):

print(nid)

return render_template("xuexue.html")

@outer

defdetail():

print("detail")

return render_template("detail.html")

deflogin():

if request.method == "get":

return render_template("login1.html")

else:

session["user"] = request.form.to_dict().get("user")

return redirect("/miss")

if __name__ == '__main__':

# 執行這個flask專案

請求執行流程**:

from flask importflask, request, session, render_template, redirect, session

importweishenme

from serv importusers

# 到瑞配置類

# 註冊藍圖

defis_login():

print("b1")

if request.path == "/login":

returnnone

elif session.get("user"):

returnnone

else:

return redirect("/login")

defb2():

print("b2")

returnnone

defb3():

print("b3")

returnnone

defaf1(res):

print("af1")

returnres

defaf2(res):

print("af2")

returnres

defaf3(res):

print("af3")

returnres

defindex():

return render_template("index1.html")

defdetail():

return render_template("detail.html")

deflogin():

if request.method == "get":

return render_template("login1.html")

else:

print("xiaoxue")

session["user"] = request.form.get("user")

return redirect("/")

deferror(args):

print(args)

return "您訪問的頁面不存在,或者走丟了.....%s" %args

if __name__ == '__main__':

Flask 特殊裝飾器

檢視中的裝飾器 否則這個裝飾器起不到任何作用 2 類檢視的裝飾器,需要重寫類檢視中的乙個類屬性 decorators 這個類屬性 是乙個列表或元組都可以,裡面裝的就是左右裝飾器 在請求 request 進入檢視函式之前執行,是全域性的裝飾器,每次請求都會走一遍這個裝飾器,這和django的中介軟體很...

Flask中那些特殊的裝飾器

用法 記得加括號 def jiafa a,b 這個方法每呼叫一次就需要傳一次,將他做成乙個全域性的就用這麼麻煩了 return int a int b 在模板中這樣使用 可以在全域性範圍的模板中使用這個函式,而不用通過引數傳到模板中 用法 def jianfa a,b,c return a b c ...

flask系列 1 10 裝飾器路由具體實現

flask有兩大核心 werkzeug和jinja2 werkzeug實現路由 除錯和web伺服器閘道器介面 jinja2實現了模板。werkzeug是乙個遵循wsgi協議的python函式庫 其內部實現了很多web框架底層的東西,比如request和response物件 與wsgi規範的相容 支援...