Python Flask 文件上传

Python Flask 文件上传

Python Flask 文件上传

在 web 开发中,有时候我们需要让用户上传文件,比如图片、文档等。Python Flask 提供了简单且强大的功能来处理文件上传。本文将详细介绍如何在 Flask 中实现文件上传功能。

准备工作

在开始之前,你需要确保已经安装了 Flask。如果没有安装,你可以使用以下命令进行安装:

pip install flask

在项目目录下创建一个名为 uploads 的文件夹,用来存储用户上传的文件。

创建 Flask 应用

首先,我们需要创建一个 Flask 应用,并设置一个简单的文件上传表单页面。

from flask import Flask, render_template, request

app = Flask(__name__)

@app.route('/')
def index():
    return render_template('index.html')

if __name__ == '__main__':
    app.run(debug=True)

接下来,我们需要创建一个名为 index.html 的模板文件,用来展示文件上传表单。

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

文件上传处理

现在我们需要在 Flask 应用中添加一个路由来处理文件上传。

import os

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

@app.route('/upload', methods=['POST'])
def upload_file():
    file = request.files['file']
    if file:
        file.save(os.path.join(app.config['UPLOAD_FOLDER'], file.filename))
        return '文件上传成功!'
    return '文件上传失败!'

在这个路由中,我们首先获取用户上传的文件,然后将文件保存到 uploads 文件夹中。最后返回文件上传成功的消息。

运行应用

现在我们可以运行 Flask 应用,并在浏览器中访问 http://127.0.0.1:5000 来上传文件。

python app.py

示例

下面是一个完整的示例代码:

from flask import Flask, render_template, request
import os

app = Flask(__name__)

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

@app.route('/')
def index():
    return render_template('index.html')

@app.route('/upload', methods=['POST'])
def upload_file():
    file = request.files['file']
    if file:
        file.save(os.path.join(app.config['UPLOAD_FOLDER'], file.filename))
        return '文件上传成功!'
    return '文件上传失败!'

if __name__ == '__main__':
    app.run(debug=True)

结果

当你访问 http://127.0.0.1:5000 后,会看到一个文件上传表单。上传文件后,文件将保存到 uploads 文件夹中,同时页面会显示文件上传成功的消息。

通过以上的步骤,我们成功实现了在 Flask 应用中上传文件的功能。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程