Werkzeug测试:使用Python进行文件上传和下载的测试
发布时间:2023-12-11 06:28:51
Werkzeug是一个Python的WSGI(Web服务网关接口)工具库,可用于构建Web应用程序。它提供了一些方便的功能,可以很容易地实现文件上传和下载。下面是一个使用Werkzeug进行文件上传和下载的示例。
首先我们需要安装Werkzeug库。可以使用pip来安装:
pip install Werkzeug
接下来我们将创建一个简单的Web应用程序,用于文件上传和下载。我们需要导入Werkzeug的相关模块:
from flask import Flask, send_from_directory, request from werkzeug.utils import secure_filename
然后创建一个Flask应用程序:
app = Flask(__name__)
在应用程序中,我们需要指定一个文件上传目录。使用UPLOAD_FOLDER变量来指定上传目录的路径:
import os UPLOAD_FOLDER = '/path/to/upload/directory' app.config['UPLOAD_FOLDER'] = UPLOAD_FOLDER
上传文件的功能可以通过定义一个路由来实现。使用POST方法访问该路由,并使用request.files获取上传的文件对象:
@app.route('/upload', methods=['POST'])
def upload():
file = request.files['file']
if file:
filename = secure_filename(file.filename)
file.save(os.path.join(app.config['UPLOAD_FOLDER'], filename))
return '文件上传成功'
return '文件上传失败'
在该路由中,我们首先从请求中获取上传的文件对象。然后使用secure_filename函数来确保文件名的安全性,将文件保存到指定的上传目录下。最后返回上传成功的提示信息。
下载文件的功能可以通过定义另一个路由来实现。使用send_from_directory函数来发送文件:
@app.route('/download/<filename>')
def download(filename):
return send_from_directory(app.config['UPLOAD_FOLDER'], filename)
在该路由中,我们接收传递的文件名参数,并使用send_from_directory函数来发送该文件。
最后,我们需要运行这个应用程序:
if __name__ == '__main__':
app.run()
整个应用程序的代码如下:
from flask import Flask, send_from_directory, request
from werkzeug.utils import secure_filename
app = Flask(__name__)
import os
UPLOAD_FOLDER = '/path/to/upload/directory'
app.config['UPLOAD_FOLDER'] = UPLOAD_FOLDER
@app.route('/upload', methods=['POST'])
def upload():
file = request.files['file']
if file:
filename = secure_filename(file.filename)
file.save(os.path.join(app.config['UPLOAD_FOLDER'], filename))
return '文件上传成功'
return '文件上传失败'
@app.route('/download/<filename>')
def download(filename):
return send_from_directory(app.config['UPLOAD_FOLDER'], filename)
if __name__ == '__main__':
app.run()
以上是使用Werkzeug进行文件上传和下载的简单示例。你可以根据自己的需求对代码进行修改和扩展。希望这可以帮助到你!
