flask前后端怎么使用session实现交互
时间: 2024-06-06 15:02:01 浏览: 11
在 Flask 中,可以使用 Flask-Session 扩展来实现 session 的交互。下面是实现步骤:
1. 安装 Flask-Session 扩展:
```
pip install Flask-Session
```
2. 在 Flask 应用中初始化扩展:
```python
from flask import Flask
from flask_session import Session
app = Flask(__name__)
app.config['SECRET_KEY'] = 'your-secret-key'
app.config['SESSION_TYPE'] = 'filesystem'
sess = Session()
sess.init_app(app)
```
3. 在前端页面中发送请求时,需要将 session_id 发送至后端:
```html
<form method="POST" action="/login">
<input type="text" name="username" placeholder="Username">
<input type="password" name="password" placeholder="Password">
<input type="hidden" name="session_id" value="{{session_id}}">
<button type="submit">Login</button>
</form>
```
4. 在后端接收请求时,获取 session_id 并进行操作:
```python
from flask import request, session
@app.route('/login', methods=['POST'])
def login():
username = request.form['username']
password = request.form['password']
session_id = request.form['session_id']
# 验证用户名和密码
if username == 'admin' and password == '123456':
# 将用户信息存储到 session 中
session['user'] = {'username': username, 'password': password}
return 'Login success!'
else:
return 'Login failed!'
```
5. 在前端页面中获取 session 中存储的信息:
```html
{% if session.get('user') %}
<p>Welcome, {{session['user']['username']}}!</p>
{% else %}
<p>Please login first.</p>
{% endif %}
```
以上就是使用 Flask-Session 实现 session 交互的步骤。需要注意的是,Flask-Session 默认将 session 存储在服务器的文件系统中,也可以使用其他方式存储,例如 Redis、Memcached 等。