Flask--g属性

Flask之g属性

  • 专门用来存储用户信息的g对象,g的全称的为global

  • g对象在一次请求中的所有的代码的地方,都是可以使用的

使用

from flask import Flask,g,render_template,request
from utils import login_log
app = Flask(__name__)


@app.route('/')
def hello_world():
    return 'Hello World!'

@app.route('/login/',methods=['GET','POST'])
def login():
    if request.method == 'GET':
        return render_template('login.html')
    else:
        username = request.form.get('username')
        password = request.form.get('password')
        if username == '111' and password == '222':
            g.username = '111'
            login_log()
            return u'登录成功'
        else:
            return u'您的用户名或密码错误'

if __name__ == '__main__':
    app.run()

utils.py(调用)

from flask import g
def login_log():
    print('当前登录用户是',g.usernmae)

login.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<form action="" method="post">
    <table>
        <tbody>
        <tr>
            <td>用户名:</td>
            <td><input type="text" name="username" placeholder="请输入用户名"></td>
        </tr>
        <tr>
            <td>密码:</td>
            <td><input type="password" name="password" placeholder="请输入密码"></td>
        </tr>
        <tr>
            <td></td>
            <td><input type="submit" value="登录"></td>
        </tr>
        </tbody>
    </table>
</form>
</body>
</html>

session,flash,g的区别

  • session:只要设置,在任意请求中都能拿到,无论你拿多少次
  • flash:一旦设置,可在任意一次请求中获取,但是只能取一次
  • g:一旦设置,只能在当请求中获取,其它的请求都不能获取
原文地址:https://www.cnblogs.com/Hades123/p/11783198.html