Flask:web中添加 upload file and download file 功能

在form表单中添加file;

            <form action={
   {
   url_for('download')}} method='POST' enctype="multipart/form-data">
                <input type="file" name='file'> <br>
                <button type="submit">Submit</button>
            </form>

app.py中使用request.files()得到file;
别忘了method=[“POST”];

from flask import Flask,render_template,request,send_file         #得到email by request

app=Flask(__name__)

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

@app.route('/download', methods=['POST'])
def download():
    if request.method=='POST':
        file=request.files["file"]  #input里的file name
        print(file.read())
        print(file)  #<FileStorage: 'Sample.csv' ('application/vnd.ms-excel')>
        print(type(file))  #<class 'werkzeug.datastructures.FileStorage'>
        return render_template('home.html')

if __name__ =='__main__':
    app.debug=True
    app.run(port=5001)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Flask是一个使用Python编写的轻量级Web应用框架,它提供了丰富的功能和灵活的扩展机制。在Flask实现文件上传和下载功能,可以通过使用Flask的文件上传和下载插件来实现。 文件上传功能可以通过Flask-WTF插件的FileField字段来实现。在前端的表单添加一个FileField类型的字段,用户在选择文件时可以上传到服务器。在后端的路由处理函数,通过获取上传的文件对象,可以对其进行保存、处理等操作。 文件下载功能可以通过Flask的send_file函数来实现。在后端的路由处理函数,根据用户请求的文件名或路径,使用send_file函数将该文件发送给用户进行下载。可以指定文件的mimetype或者headers等信息,以便浏览器正确解析和处理文件。 文件上传和下载涉及到的操作还包括文件路径的处理、文件大小的限制、文件类型的限制等。需要注意的是,为了保证安全性,应该对上传的文件进行严格的验证和过滤,避免上传恶意文件或导致安全漏洞。 总而言之,Flask提供了丰富的插件和函数,使得文件上传和下载功能的实现相对简单。通过合理使用Flask的相关插件和函数,可以方便地在Web应用实现文件的上传和下载功能,提升用户体验和功能扩展性。 ### 回答2: Flask是一个使用Python语言编写的轻量级Web框架,它提供了很多开发Web应用所需的工具和库。在Flask,文件上传和下载可以通过使用特定的库和函数来实现。下面我将详细介绍如何在Flask实现文件上传和下载功能。 文件上传可以通过使用Flask的`request`对象和`FileStorage`类来实现。首先,需要在HTML表单定义一个文件上传字段,例如: ``` <form method="POST" enctype="multipart/form-data"> <input type="file" name="file"> <input type="submit" value="上传"> </form> ``` 接下来,在Flask的路由函数,可以通过`request.files`获取上传的文件对象。然后,可以使用`save()`方法将文件保存到指定的目录。示例如下: ```python from flask import Flask, request app = Flask(__name__) @app.route('/upload', methods=['POST']) def upload(): file = request.files['file'] file.save('/path/to/save/file') return '文件上传成功' if __name__ == '__main__': app.run() ``` 文件下载可以通过设置相应的HTTP头来实现。在Flask,可以使用`send_file`函数将文件发送给客户端进行下载。示例如下: ```python from flask import Flask, send_file app = Flask(__name__) @app.route('/download') def download(): filepath = '/path/to/file' return send_file(filepath, as_attachment=True) if __name__ == '__main__': app.run() ``` 在这个例子,`send_file`函数的`filepath`参数指定了文件的路径。设置`as_attachment`为`True`表示将文件作为附件进行下载。当在浏览器访问`/download`路径时,会自动下载指定的文件。 以上就是使用Flask实现文件上传和下载的简单方法。当然,你还可以根据具体需求进一步定制和优化这些功能

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值