Flask 上传自定义头像的实例详解

1. 引言

Flask是一个轻量级的Web框架,它提供了简单而灵活的方式来创建Web应用程序。在很多Web应用中,用户上传自定义头像是一个常见的功能需求。本文将详细解释如何使用Flask实现上传自定义头像的功能。

2. 准备工作

在开始之前,我们需要安装Flask和其它必要的依赖。可以使用以下命令安装:

pip install Flask

除此之外,我们还需要创建一个用于保存上传头像的目录。可以使用以下命令创建:

mkdir avatars

3. 创建Flask应用

首先,我们需要导入必要的模块并创建一个Flask应用实例:

from flask import Flask, request, render_template

import os

app = Flask(__name__)

app.config['UPLOAD_FOLDER'] = 'avatars'

app.config['ALLOWED_EXTENSIONS'] = {'png', 'jpg', 'jpeg', 'gif'}

app.config['MAX_CONTENT_LENGTH'] = 16 * 1024 * 1024

3.1 设置上传目录和文件类型限制

在上述代码中,我们使用app.config来设置上传目录、允许的文件类型和最大文件大小限制。UPLOAD_FOLDER指定了上传文件保存的目录,ALLOWED_EXTENSIONS定义了允许上传的文件类型,MAX_CONTENT_LENGTH限制了上传的文件大小。

def allowed_file(filename):

return '.' in filename and \

filename.rsplit('.', 1)[1].lower() in app.config['ALLOWED_EXTENSIONS']

我们还定义了一个辅助函数allowed_file来检测文件类型是否合法。

3.2 创建上传页面

接下来,我们需要创建一个上传页面供用户使用。在Flask中,可以使用render_template函数来渲染HTML模板并返回给用户。

@app.route('/', methods=['GET', 'POST'])

def upload_file():

if request.method == 'POST':

file = request.files['file']

if file and allowed_file(file.filename):

filename = secure_filename(file.filename)

file.save(os.path.join(app.config['UPLOAD_FOLDER'], filename))

return '文件上传成功!'

return render_template('upload.html')