uiapp 修改头像 代码
时间: 2024-01-23 16:01:43 浏览: 64
好的,下面是一个简单的uiapp修改头像的代码示例:
```python
import io
import os
from PIL import Image
# 上传头像的处理函数
@app.route('/upload_avatar', methods=['POST'])
def upload_avatar():
# 从表单中获取上传的文件
file = request.files['avatar']
# 检查文件类型和大小等属性
if file and allowed_file(file.filename):
filename = secure_filename(file.filename)
# 将文件保存到服务器上的指定目录
file.save(os.path.join(app.config['UPLOAD_FOLDER'], filename))
# 打开上传的图像文件
image = Image.open(os.path.join(app.config['UPLOAD_FOLDER'], filename))
# 对图像进行处理和裁剪
cropped_image = image.crop((0, 0, 100, 100))
# 将处理后的图像保存到指定目录
cropped_image.save(os.path.join(app.config['AVATAR_FOLDER'], filename))
# 将图像的路径保存到数据库中
user.avatar = os.path.join(app.config['AVATAR_FOLDER'], filename)
db.session.commit()
# 返回成功上传的消息
flash('Your avatar has been uploaded successfully!', 'success')
else:
# 返回上传失败的消息
flash('Invalid file format or size!', 'error')
# 重定向到用户信息页面
return redirect(url_for('user_info'))
# 用户信息页面的渲染函数
@app.route('/user_info')
def user_info():
# 从数据库中获取当前用户的信息
user = User.query.filter_by(id=current_user.id).first()
# 将用户信息渲染到界面上
return render_template('user_info.html', user=user)
```
在上面的代码中,我们首先定义了一个处理函数`upload_avatar`,它用于处理上传头像的请求。当用户选择上传头像文件后,通过POST方法将文件提交到该函数。函数首先检查文件的类型和大小等属性,然后将文件保存到服务器指定的目录中。接着,函数使用Pillow库打开并处理图像,将其裁剪为指定大小,然后将处理后的图像保存到服务器上的另一个目录中,并将其路径保存到数据库中。最后,函数返回成功或失败的消息,并重定向到用户信息页面。
用户信息页面`user_info`显示当前用户的信息,包括用户名、电子邮件和头像等。我们使用数据库查询获取当前用户的信息,并将其渲染到模板中。在模板中,我们使用HTML和CSS将用户的头像显示为一个圆形图像,并在需要时使用上传头像的表单控件替换现有的头像。
阅读全文