flask 实现上传图片并缩放作为头像的例子

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应用程序。

后端开发标签