flask封装的g对象的定义
1.在flask中,有一个专门用来存储用户信息的g对象,g的全称的为global。
2.g对象在一次请求中的所有的代码的地方,都是可以使用的。
g对象和站点session的区别
最大的区别是,session对象是可以跨request的,只要session还未失效,不同的request的请求会获取到同一个session,但g对象不是,g对象不需要管过期时间,请求一次就g对象就被刷了一次,或者说重新赋值了一次。
g对象该如何使用呢?看代码。
文件: login.html
<!DOCTYPE html> <html> <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>
文件: app.py
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)