前几篇写的都是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(, "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="")
闪现 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(, "age") return "this's index" # CBV
class LoginClass(views.MethodView): def get(self):
print(get_flashed_messages("name")) # 取出所有键值对
# [('name', 'gang_dan'), ('age', )]
print(get_flashed_messages("age")) # 取出所有键值对
# [('name', 'gang_dan'), ('age', )]
print(get_flashed_messages()) # 取出所有的key
# ['gang_dan', ]
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="")
先访问一次路由 ‘/’ 写入flash,等着再访问 "/login" 获取值后 falsh就没了
再访问下 "/login" 后 发现打印的全是空列表