Я изучил источник и документацию werkzeug, нигде не указано, какой режим он открыт. Поскольку режим открытого по умолчанию для обычного файла является текстовым режимом, это вызывает у меня вопрос. Раньше у меня была проблема сохранения данных = storage.read() в тип LargeBinary в sqlalchemy с ошибкой, говорящей: нельзя преобразовать unicode в байтовый тип.Is Filestorage storage.read() открыть файл в двоичном режиме?
-3
A
ответ
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
объекта.