Flask中的g对象
约 614 字
预计阅读 2 分钟
次阅读
- 什么是g对象。
- 在flask中,有一个专门用来存储用户信息的g对象,g的全称的为global。
- g对象在一次请求中的所有的代码的地方,都是可以使用的。
- g对象和session的区别
在我看来,最大的区别是,session对象是可以跨request的,只要session还未失效,不同的request的请求会获取到同一个session,但是g对象不是,g对象不需要管过期时间,请求一次就g对象就改变了一次,或者重新赋值了一次。那么g对象该如何使用呢?看代码。
login.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
|
<!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>
|
app.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
|
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
1
2
3
|
from flask import g
def login_log():
print('当前登录用户是',g.usernmae)
|