Павло Щербуха

Logo

Персональна освітня сорінка

Розробка на Node.js, VUE.js, Python, IBM Integration Bus (App Connect Ent) , ORACLE PL/SQL
6 February 2023

Python-flask how to create and process multipart/form-data requests

by Pavlo Shcherbukha

Як в python Flask передати та обробити multipart/form-data дані

В одному з проектів прийшлося перевикористати метод, який розбирає web форму, та передає дані у вигляді прикріпленого файлу. Мені потрібно було повторити це на python тільки програмно. Пошуки по інтернету не дали якогось системного розуміння, тому спробував розробити собі приклад, та розібратися з цим більш детально.

Приклад для вивчення наведено в репозиторії за лінком: Як створити та оборобити http multipart/form-data запити в python flask . В наведених прикладах моделюються запити з html-форми та запити, що створені програмно з використанням двох бібіліотек:

Сказати, що я там знайшов великі відмінності - не можу, тому що прицип формуфання запитів схожий. Але використання “рідного” python request модуля мені якось ближче.

В прикладах наведено:

На приймаючій стороні обробка даних виконується однаково, що з html форми, що з запиту, створеного програмно. Слід зробити наголос: щоб обробка була однаковою, слід розуміти що на стороні Flask приймаючий Flask.Request використовує під капотом бібліотеку werkzeug werkzeug.ImmutableMultiDict how to parse , і вимагає розуміння, як розбирати дані, що збережені в werkzeug.ImmutableMultiDict, ну і як правильно підставити в запит дані форми на стороні формування запиту. Ну і основна складність, коли потрібно передати та розібрати кілька файлів.

Правда не розглянутим залишився streaming. Ну, сподіваюсь, то трохи пізніше.

tags: