使用flask实现修改用户信息的前后、端代码
时间: 2023-12-29 09:02:59 浏览: 159
一套基于flask+layui开发的前后端源码
5星 · 资源好评率100%
前端代码:
```html
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>修改用户信息</title>
<link rel="stylesheet" href="{{ url_for('static', filename='css/bootstrap.min.css') }}">
<script src="{{ url_for('static', filename='js/jquery.min.js') }}"></script>
<script src="{{ url_for('static', filename='js/bootstrap.min.js') }}"></script>
</head>
<body>
<div class="container">
<h1>修改用户信息</h1>
<form id="update-form" class="form-horizontal" method="post">
<div class="form-group">
<label for="username" class="col-sm-2 control-label">用户名</label>
<div class="col-sm-10">
<input id="username" name="username" type="text" class="form-control" value="{{ user.username }}" disabled>
</div>
</div>
<div class="form-group">
<label for="email" class="col-sm-2 control-label">邮箱</label>
<div class="col-sm-10">
<input id="email" name="email" type="email" class="form-control" value="{{ user.email }}" required>
</div>
</div>
<div class="form-group">
<label for="phone" class="col-sm-2 control-label">电话</label>
<div class="col-sm-10">
<input id="phone" name="phone" type="text" class="form-control" value="{{ user.phone }}" required>
</div>
</div>
<div class="form-group">
<div class="col-sm-offset-2 col-sm-10">
<button type="submit" class="btn btn-primary">保存</button>
</div>
</div>
</form>
</div>
<script>
$(function () {
$('#update-form').submit(function () {
$.ajax({
url: '{{ url_for("update_user") }}',
type: 'POST',
data: $('#update-form').serialize(),
success: function (data) {
if (data['success']) {
alert('修改成功');
window.location.href='{{ url_for("user_info") }}';
} else {
alert('修改失败');
}
},
error: function () {
alert('修改失败');
}
});
return false;
});
});
</script>
</body>
</html>
```
后端代码:
```python
from flask import Blueprint, render_template, request, jsonify
from flask_login import login_required, current_user
from app.models import User
from app.extensions import db
user_bp = Blueprint('user', __name__)
@user_bp.route('/info')
@login_required
def user_info():
return render_template('user/info.html', user=current_user)
@user_bp.route('/update', methods=['POST'])
@login_required
def update_user():
email = request.form.get('email')
phone = request.form.get('phone')
current_user.email = email
current_user.phone = phone
db.session.commit()
return jsonify(success=True)
```
以上代码实现了使用 Flask 和 Ajax 技术来修改用户信息。前端页面中包含一个表单,用户在表单中填写邮箱和电话信息,然后通过 Ajax 请求发送到后端进行修改。后端通过 Flask Login 获取当前登录的用户信息,然后从表单中获取新的邮箱和电话信息,将其更新到数据库中,最后返回一个 JSON 格式的响应,表示修改成功。在前端页面中,根据响应中的 success 字段来提示用户修改是否成功。
阅读全文