Python Web 开发: 在 Flask 中如何处理文件上传?

简介: Python Web 开发: 在 Flask 中如何处理文件上传?

在Flask中,处理文件上传涉及到使用表单(Form)来允许用户选择文件,并在服务器端接收和处理上传的文件。下面是一个简单的例子,演示如何在Flask中处理文件上传:

  1. 创建Flask应用:
# app.py
from flask import Flask, render_template, request

app = Flask(__name__)

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

@app.route('/upload', methods=['POST'])
def upload():
    if 'file' not in request.files:
        return 'No file part'

    file = request.files['file']

    if file.filename == '':
        return 'No selected file'

    # 保存文件到服务器
    file.save('uploads/' + file.filename)

    return 'File uploaded successfully'
  1. 创建HTML模板:
<!-- templates/index.html -->
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>File Upload</title>
</head>
<body>
    <h1>File Upload Example</h1>

    <form action="/upload" method="post" enctype="multipart/form-data">
        <input type="file" name="file" accept=".txt, .pdf, .png, .jpg, .jpeg">
        <input type="submit" value="Upload">
    </form>
</body>
</html>

在这个例子中,我们创建了一个包含一个文件上传表单的HTML页面。表单的enctype属性设置为multipart/form-data,这是处理文件上传的标准方式。

  1. 运行应用:
$ mkdir uploads  # 创建用于存储上传文件的目录
$ export FLASK_APP=app.py
$ flask run
  1. 访问应用:

打开浏览器并访问 http://127.0.0.1:5000/,你将看到一个简单的页面,其中包含一个文件上传表单。选择一个文件并点击"Upload"按钮,文件将被上传到服务器的`uploads`目录中。

请注意,上述示例中的上传路径是相对于当前工作目录的,你可以根据需要调整保存文件的路径。此外,为了安全起见,你可能需要对上传的文件进行一些验证和处理,例如检查文件类型、大小、重命名文件等。在生产环境中,还应该考虑对上传的文件进行安全性检查。

相关文章
|
16天前
|
存储 数据库连接 API
Python环境变量在开发和运行Python应用程序时起着重要的作用
Python环境变量在开发和运行Python应用程序时起着重要的作用
61 15
|
23天前
|
JSON 安全 API
如何使用Python开发API接口?
在现代软件开发中,API(应用程序编程接口)用于不同软件组件之间的通信和数据交换,实现系统互操作性。Python因其简单易用和强大功能,成为开发API的热门选择。本文详细介绍了Python开发API的基础知识、优势、实现方式(如Flask和Django框架)、实战示例及注意事项,帮助读者掌握高效、安全的API开发技巧。
48 3
如何使用Python开发API接口?
|
9天前
|
开发框架 JavaScript 前端开发
TypeScript 是一种静态类型的编程语言,它扩展了 JavaScript,为 Web 开发带来了强大的类型系统、组件化开发支持、与主流框架的无缝集成、大型项目管理能力和提升开发体验等多方面优势
TypeScript 是一种静态类型的编程语言,它扩展了 JavaScript,为 Web 开发带来了强大的类型系统、组件化开发支持、与主流框架的无缝集成、大型项目管理能力和提升开发体验等多方面优势。通过明确的类型定义,TypeScript 能够在编码阶段发现潜在错误,提高代码质量;支持组件的清晰定义与复用,增强代码的可维护性;与 React、Vue 等框架结合,提供更佳的开发体验;适用于大型项目,优化代码结构和性能。随着 Web 技术的发展,TypeScript 的应用前景广阔,将继续引领 Web 开发的新趋势。
25 2
|
11天前
|
JSON 前端开发 API
使用Python和Flask构建简易Web API
使用Python和Flask构建简易Web API
|
11天前
|
存储 API 数据库
使用Python和Flask构建简单的RESTful API
使用Python和Flask构建简单的RESTful API
|
11天前
|
JSON 关系型数据库 测试技术
使用Python和Flask构建RESTful API服务
使用Python和Flask构建RESTful API服务
|
16天前
|
JSON API 数据格式
如何使用Python开发1688商品详情API接口?
本文介绍了如何使用Python开发1688商品详情API接口,获取商品的标题、价格、销量和评价等详细信息。主要内容包括注册1688开放平台账号、安装必要Python模块、了解API接口、生成签名、编写Python代码、解析返回数据以及错误处理和日志记录。通过这些步骤,开发者可以轻松地集成1688商品数据到自己的应用中。
30 1
|
21天前
|
开发框架 前端开发 JavaScript
利用Python和Flask构建轻量级Web应用的实战指南
利用Python和Flask构建轻量级Web应用的实战指南
59 2
|
22天前
|
数据采集 存储 JSON
Python爬虫开发中的分析与方案制定
Python爬虫开发中的分析与方案制定
|
24天前
|
API 数据库 开发者
深度剖析Django/Flask:解锁Web开发新姿势,让创意无限延伸!
在Web开发领域,Django与Flask如同两颗璀璨的星辰,各具特色。Django提供全栈解决方案,适合快速开发复杂应用;Flask则轻量灵活,适合小型项目和API开发。本文通过问答形式,深入解析两大框架的使用方法和选择策略,助你解锁Web开发新技能。
35 2