python flask:模拟 werkzeug FileStorage 对象
python flask: mimic werkzeug FileStorage object
我在 flask 应用程序中有以下路径,它接受上传的文件并将文件对象放入函数中进行验证。这是一个准系统示例:
def is_file_valid(file):
if file.filename == 'test':
return True
return False
@app.route('/validate', method=['POST'])
def validate():
file = request.files['file']
if is_file_valid(file):
return redirect(url_for('somewhere'))
return redirect(url_for('somewhere_else'))
我正在尝试创建一个单元测试来测试 is_file_valid
函数,但我在创建 FileStorage
对象 flask 使用时遇到了问题,它看起来与标准 python 文件对象 (docs).
这是我到目前为止尝试过的方法:
import io
with io.open('/path/to/file', 'rb') as f:
print(f.filename)
但我收到以下错误:
AttributeError: 'io.TextIOWrapper' object has no attribute 'filename'
知道如何在常规 python 脚本中模仿 werkzeug 的 FileStorage
对象吗?
已回答 here. Just need to wrap the python file object in the werkzeug FileStorage class。
我在 flask 应用程序中有以下路径,它接受上传的文件并将文件对象放入函数中进行验证。这是一个准系统示例:
def is_file_valid(file):
if file.filename == 'test':
return True
return False
@app.route('/validate', method=['POST'])
def validate():
file = request.files['file']
if is_file_valid(file):
return redirect(url_for('somewhere'))
return redirect(url_for('somewhere_else'))
我正在尝试创建一个单元测试来测试 is_file_valid
函数,但我在创建 FileStorage
对象 flask 使用时遇到了问题,它看起来与标准 python 文件对象 (docs).
这是我到目前为止尝试过的方法:
import io
with io.open('/path/to/file', 'rb') as f:
print(f.filename)
但我收到以下错误:
AttributeError: 'io.TextIOWrapper' object has no attribute 'filename'
知道如何在常规 python 脚本中模仿 werkzeug 的 FileStorage
对象吗?
已回答 here. Just need to wrap the python file object in the werkzeug FileStorage class。