这是一个使用Python Flask框架的示例代码,实现了编辑用户详细信息后重定向到最新编辑详细信息的用户页面。
from flask import Flask, render_template, redirect, request
app = Flask(__name__)
# 假设已经有一个用户列表users,每个用户是一个字典,包含id和详细信息
users = [
{"id": 1, "name": "Alice", "age": 25},
{"id": 2, "name": "Bob", "age": 30},
{"id": 3, "name": "Charlie", "age": 35}
]
@app.route('/user/', methods=['GET'])
def get_user(user_id):
# 根据用户id查找用户信息
user = next((user for user in users if user['id'] == user_id), None)
if user:
return render_template('user.html', user=user)
else:
return "User not found"
@app.route('/edit_user/', methods=['GET', 'POST'])
def edit_user(user_id):
# 根据用户id查找用户信息
user = next((user for user in users if user['id'] == user_id), None)
if not user:
return "User not found"
if request.method == 'POST':
# 更新用户详细信息
user['name'] = request.form['name']
user['age'] = int(request.form['age'])
# 重定向到用户页面
return redirect(f"/user/{user_id}")
else:
return render_template('edit_user.html', user=user)
if __name__ == '__main__':
app.run()
在这个示例代码中,有两个路由函数:
get_user
函数用于显示用户详细信息页面。它接收一个user_id
参数,根据该参数查找对应的用户信息,并通过模板渲染引擎渲染user.html
模板,将用户信息展示在页面上。
edit_user
函数用于处理编辑用户详细信息的逻辑。它接收一个user_id
参数,根据该参数查找对应的用户信息。如果请求方法是GET,它会渲染edit_user.html
模板,显示一个表单供用户编辑。如果请求方法是POST,它会更新用户详细信息,然后重定向到用户详细信息页面。
其中,在POST请求处理逻辑中,使用redirect
函数重定向到用户页面,将用户id作为参数传递给redirect
函数,以便在重定向后能够正确显示用户详细信息。
需要创建两个HTML模板文件:
user.html
模板用于展示用户详细信息,例如:
User Info
User Info
ID: {{ user['id'] }}
Name: {{ user['name'] }}
Age: {{ user['age'] }}
edit_user.html
模板用于编辑用户详细信息的表单,例如:
Edit User
Edit User
这样,当访问/user/
路径时,将显示用户详细信息页面。当访问/edit_user/
路径时,将显示用户编辑表单。编辑用户信息后,点击"Save"按钮