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)