我已经查看了werkzeug的来源和文档,它没有指定它打开的模式。由于普通文件的默认打开模式是文本模式,因此它给我带来了问题。之前,我在sqlalchemy中将data = storage.read()保存为LargeBinary类型时出现问题,并出现错误:无法将unicode转换为字节类型。
答案 0 :(得分:0)
是的,文件以二进制模式打开。请参阅default_stream_factory()
function source:
def default_stream_factory(total_content_length, filename, content_type, content_length=None): """The stream factory that is used per default.""" if total_content_length > 1024 * 500: return TemporaryFile('wb+') return BytesIO()
因此,要么以TemporaryFile()
模式(写入和读取,二进制)或内存中的wb+
对象打开BytesIO
对象。