第十一篇 CBV和閃現
阿新 • • 發佈:2018-12-18
前幾篇寫的都是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" 後 發現列印的全是空列表