1.什么是g对象?
- 在 flask 中,有一个专门用来存储用户信息的 g 对象,g的全称的为global。
- g 对象在一次请求中的所有的代码的地方,都是可以使用的。
赋值方式
from flask import Flask, g, render_template, request
from ulits import login_log
app = Flask(__name__)
@app.route('/')
def hello_world():
return 'index'
@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 == 'zhiliao' and password == '111111':
g.username = username
login_log()
return '恭喜您!登录成功'
else:
return '登录名或密码错误!'
if __name__ == '__main__':
app.run(debug=True, host='127.0.0.1', port=8081)
调用方式
from flask import g
def login_log():
print('登录名为: {}'.format(g.username))
2.g对象和session的区别
在我看来,最大的区别是,session对象是可以跨request的,只要session还未失效,不同的request的请求会获取到同一个session
但是g对象不是,g对象不需要管过期时间,请求一次就g对象就改变了一次,或者重新赋值了一次
那么g对象该如何使用呢?看代码。
login.html