【Flask的CBV用法】 -- 2019-08-08 18:01:46

原文: http://106.13.73.98/__/118/

很简单的,记住用法就行,直接上代码。

from flask import Flask, views, request, redirect

from flask import flash, get_flashed_messages  
# 闪现,与CBV无关,如果只想学习CBV,可忽略它
# flash:存数据  get_flashed_messages:取数据


app = Flask(__name__)
app.secret_key = '密钥'  # 使用flash时,需设置密钥


# CBV
class Login(views.MethodView):
    # 默认写出来的请求方法都被允许,如果还是想重定制,可使用methods属性来重新定义允许的请求
    # methods = ['GET', 'POST']

    # 这是CBV的特殊装饰器,按索引顺序执行
    # decorators = [is_login, ok_login]

    def get(self):
        return """
            <form method='post'>
                <input type='text' name='username'/>
                <button>提交</button>
            </form>
        """

    def post(self):
        username = request.form.get('username')
        flash(username)  # 存数据
        return redirect('/home')


# 注册CBV的路由
app.add_url_rule('/login', view_func=Login.as_view('login'))
# app.add_url_rule('/login02', view_func=Login.as_view('login02'))  # 一个CBV可以有多条路由


@app.route('/home')
def home():
    print(get_flashed_messages('username'))  # [('message', 'zyk')]
    # 第一次取时,有值;再次刷新页面时就没有了
    return 'Thie is home page.'


app.run(debug=True)

原文: http://106.13.73.98/__/118/

猜你喜欢

转载自www.cnblogs.com/gqy02/p/11322797.html