Werkzeug:一个功能丰富的文件上传和下载工具
发布时间:2023-12-26 16:41:40
Werkzeug是一个功能丰富的文件上传和下载工具,是Python Web框架Flask中的一部分。它提供了一些方便的函数和类,用于处理文件的上传和下载操作。
文件上传是Web开发中常见的需求,例如用户提交表单时需要上传文件。Werkzeug提供了一个方便的函数secure_filename,用于获取安全的文件名。这个函数会将不安全的字符替换为下划线,并且确保文件名是ASCII编码的。使用secure_filename函数可以有效避免文件名中的安全隐患。
下面是一个例子,演示如何使用Werkzeug上传文件并保存到服务器上:
from flask import Flask, request
from werkzeug.utils import secure_filename
app = Flask(__name__)
@app.route('/upload', methods=['POST'])
def upload_file():
file = request.files['file']
filename = secure_filename(file.filename)
file.save('path/to/save/' + filename)
return 'File uploaded successfully'
if __name__ == '__main__':
app.run()
在上面的例子中,我们首先使用request.files来获取请求中上传的文件。然后,使用secure_filename函数获取安全的文件名。最后,使用file.save将文件保存到指定的路径中。
除了文件上传,Werkzeug还提供了文件下载的功能。使用Werkzeug的send_file函数,我们可以向客户端发送文件。下面是一个例子,演示如何使用Werkzeug下载文件:
from flask import Flask, send_file
app = Flask(__name__)
@app.route('/download')
def download_file():
path = 'path/to/file'
return send_file(path, as_attachment=True)
if __name__ == '__main__':
app.run()
在上面的例子中,我们使用send_file函数来发送文件。as_attachment=True表示将文件以附件的形式下载,而不是在浏览器中直接打开。
总结起来,Werkzeug是一个功能丰富的文件上传和下载工具,可以方便地处理文件的上传和下载操作。无论是在Flask项目中还是其他Python Web项目中,Werkzeug的功能都能帮助我们简化并加速开发过程。
