1. 程式人生 > >第十一篇 CBV和閃現

第十一篇 CBV和閃現

前幾篇寫的都是FBV

現在可以瞭解一下CBV

CBV

其實就是把請求方式都寫到一個類中

學過django的一眼應該就明白了

from flask import Flask, render_template
from flask import views  # 匯入檢視模組用於CBV

app = Flask(__name__, static_folder="static")



# FBV
@app.route('/')
def index():
    flash('gang_dan', 'name')
    flash(18, "age")

    
return "this's index" # CBV class LoginClass(views.MethodView): def get(self): return render_template("login.html") def post(self): return "ok" # 利用原始碼self.add_url_rule(rule, endpoint, f, **options)可得以下寫法 app.add_url_rule("/login", view_func=LoginClass.as_view("
login")) app.run(debug=True, host="127.0.0.1", port="9000")

閃現 flush

from flask import Flask, render_template
from flask import flash, get_flashed_messages  # flash設定 和取flash值
from flask import views  # 匯入檢視模組

app = Flask(__name__, static_folder="static")
app.secret_key = 'guan_ta_shi_sha_key
' # 使用flash需要設定session 不然報錯。。。 # FBV @app.route('/') def index(): flash('gang_dan', 'name') flash(18, "age") return "this's index" # CBV class LoginClass(views.MethodView): def get(self): print(get_flashed_messages("name")) # 取出所有鍵值對 # [('name', 'gang_dan'), ('age', 18)] print(get_flashed_messages("age")) # 取出所有鍵值對 # [('name', 'gang_dan'), ('age', 18)] print(get_flashed_messages()) # 取出所有的key # ['gang_dan', 18] return render_template("login.html") def post(self): return "ok" app.add_url_rule("/login", view_func=LoginClass.as_view("login")) app.run(debug=True, host="127.0.0.1", port="9000")

先訪問一次路由 ‘/’  寫入flash,等著再訪問 "/login"  獲取值後 falsh就沒了

再訪問下 "/login" 後  發現列印的全是空列表