Flask 使用flask-uploads上传文件

Flask 使用flask-uploads上传文件

在本文中,我们将介绍如何使用Flask和flask-uploads扩展来实现文件上传功能。Flask是一个轻量级的Python web框架,而flask-uploads则是一个为Flask开发的文件上传扩展。它提供了简单易用的API和功能,使得文件上传变得非常容易。

阅读更多:Flask 教程

安装依赖

首先,我们需要安装Flask和flask-uploads扩展。可以使用以下命令来安装:

pip install Flask
pip install flask-uploads
Python

设置配置

在开始使用flask-uploads之前,我们需要在Flask应用中进行相关配置。在Flask应用的配置文件中,添加以下配置项:

# 设置上传文件保存的路径
UPLOADS_DEFAULT_DEST = '/path/to/uploads'

# 设置允许上传的文件类型
UPLOADS_DEFAULT_ALLOWED_EXTENSIONS = ['txt', 'pdf', 'png', 'jpg', 'jpeg']

# 设置允许上传的最大文件大小
UPLOADS_DEFAULT_MAX_SIZE = 16 * 1024 * 1024
Python

文件上传

完成配置后,我们可以开始编写文件上传的功能了。首先,在Flask应用的路由中导入flask-uploads扩展,并创建一个UploadSet对象:

from flask import Flask, request
from flask_uploads import UploadSet, configure_uploads

app = Flask(__name__)

# 创建一个UploadSet对象
files = UploadSet('files')

# 将UploadSet对象与Flask应用进行关联
configure_uploads(app, files)
Python

然后,我们可以定义一个路由来处理文件上传的请求:

@app.route('/upload', methods=['POST'])
def upload():
    # 通过request.files获取上传的文件
    file = request.files['file']

    # 使用save()方法保存文件,并返回保存后的文件名
    filename = files.save(file)

    # 返回上传成功的提示
    return f'文件 {filename} 上传成功'
Python

在上述代码中,我们首先通过request.files获取上传的文件,然后使用save()方法保存文件,并返回保存后的文件名。

表单构建

为了方便用户上传文件,我们可以创建一个简单的表单来构建文件上传页面。在Flask应用中增加一个新的路由用于展示文件上传页面:

from flask import render_template

@app.route('/upload', methods=['GET'])
def upload_form():
    return render_template('upload.html')
Python

同时,在Flask应用的templates文件夹下创建一个名为upload.html的HTML文件,并添加如下内容:

<!DOCTYPE html>
<html>
<head>
    <title>文件上传</title>
</head>
<body>
    <h1>文件上传</h1>
    <form action="/upload" method="post" enctype="multipart/form-data">
        <input type="file" name="file">
        <input type="submit" value="上传">
    </form>
</body>
</html>
HTML

通过上述代码,我们创建了一个简单的文件上传页面。用户可以选择一个文件并点击上传按钮进行文件上传操作。

运行应用

完成上述代码后,我们可以通过运行应用来测试文件上传功能。在终端中运行以下命令启动Flask应用:

export FLASK_APP=app.py
flask run
Python

然后在浏览器中访问http://localhost:5000/upload,即可看到文件上传页面。

总结

本文介绍了如何使用Flask和flask-uploads扩展来实现文件上传功能。首先我们安装了Flask和flask-uploads扩展,并进行了相关配置。然后我们编写了文件上传的功能,并创建了一个简单的文件上传页面。最后我们运行应用并测试了文件上传功能。通过本文的学习,相信大家已经掌握了使用Flask上传文件的方法。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程

登录

注册