Flask 实现上传图片并缩放作为头像的例子
1. 简介
Flask 是一款轻量级的 Python Web 框架,广泛应用于开发简单的网站和Web应用程序。本文将介绍如何使用 Flask 实现上传图片并缩放作为用户头像的功能。
2. 准备工作
在开始之前,我们需要安装 Flask 和其它相关的库:
pip install flask
pip install pillow
安装完成后,我们可以创建一个新的 Flask 项目。
3. 创建 Flask 项目
from flask import Flask, render_template, request, redirect, url_for
from PIL import Image
app = Flask(__name__)
# 设置上传文件保存的路径
app.config['UPLOAD_FOLDER'] = 'uploads'
@app.route('/')
def index():
return render_template('index.html')
@app.route('/upload', methods=['POST'])
def upload():
# 获取上传的文件对象
file = request.files['file']
# 保存文件到指定路径
file.save(os.path.join(app.config['UPLOAD_FOLDER'], file.filename))
# 缩放图片
image = Image.open(os.path.join(app.config['UPLOAD_FOLDER'], file.filename))
image.thumbnail((100, 100))
image.save(os.path.join(app.config['UPLOAD_FOLDER'], 'avatar_' + file.filename))
return redirect(url_for('index'))
if __name__ == '__main__':
app.run()
上述代码创建了一个基本的 Flask 项目,并定义了两个路由。首先,在根路由中渲染了一个HTML模板,这个模板将用来上传图片。然后,在 "/upload" 路由中,获取上传的文件并保存到指定路径中,接着使用 Pillow 库对图片进行缩放处理,并保存为新的文件。
4. 创建 HTML 模板
接下来,我们需要创建一个 HTML 模板,用来上传图片。在项目的根目录下创建一个名为 "templates" 的文件夹,并在其中创建一个名为 "index.html" 的文件,内容如下:
<form action="/upload" method="post" enctype="multipart/form-data">
<input type="file" name="file">
<input type="submit" value="Upload">
</form>
上述代码创建了一个简单的表单,用户可以选择要上传的图片文件,并通过提交按钮将其上传。
5. 运行 Flask 项目
在命令行中运行以下命令来启动 Flask 项目:
python app.py
运行成功后,访问 http://localhost:5000/ 将会看到一个上传图片的页面。选择一张图片并点击 "Upload" 按钮,图片将会被上传到项目的 "uploads" 文件夹中,并经过缩放处理。
现在,我们已经成功地使用 Flask 实现了上传图片并缩放作为头像的功能。
总结
本文介绍了如何使用 Flask 实现上传图片并缩放作为头像的例子。通过一个简单的 Flask 项目和HTML模板,我们可以实现用户上传图片并将其保存到指定路径中的功能,并使用 Pillow 库对图片进行缩放处理。Flask 提供了简洁而强大的功能,适合用于开发各种规模的Web应用程序。