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)