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, sessionimportweishenme
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規範的相容 支援...