@tptak: załączając tak plik jak na screenie i naciskając send wchodzę w ifa: if 'file' not in request.files: --> tak jakby nie był wysyłany obrazek w requescie
@quwer: output tzn to, co Ci program wypisuje na standardowe wyjście (tam, gdzie trafia to, co jest w print()). A postman co pokazuje po tym jak już przycisk nie jest "sending..."? :D
@quwer to wygląda jak problem z Twoim routami, a nie z postmanem. Postman wysyła requesta POST, Twoja appka odpowiada mu HTTP 302 (redirect) i następnym requestem jest już GET. Chyba że ten GET w outpucie to skądinąd?
@quwer: dobra, dzięki Tobie pierwszy raz dotknąłem Flaska :D Ten ['GET', 'POST'] w przykładzie jest po to, by móc zaserwować jednocześnie obsługę przesłanych plików, jak i formularz do ich przesyłania. Mi działa coś takiego: https://pastebin.com/Nu3ZM6hA
w Postmanie tak jak miałeś ustawione (URL na [http://127.0.0.1:5000/upload](http://127.0.0.1:5000/upload), method na POST, body na form-data, key na file i typ File i wybrany plik):
@quwer: ¯\_(ツ)_/¯ to ja nie wiem. Odpalam flaska poprzez flask run w terminalu. Może musisz coś zaktualizować? U Ciebie jest Workzeug/0.14.1 Python/3.7.1, u mnie Workzeug/1.0.1 Python/3.8.5, ale nie wiem, czy to kwestia tego.
Albo Postman nie dodaje odpowiedniego headera - wrzuc sobie w nowej linijce przed print('No file part') coś takiego: print(request.headers['Content-Type']) i powiedz, co wypluwa. Powinno coś w stylu:
@quwer: możliwe, że to ten header, bo Ty masz "headers (2)", a ja "headers (8)" Kliknij "Headers", wyszarzone "2 hidden" i jeśli brakuje Content-Type: multipart/form-data, to go dodaj:
https://paste.ofcode.org/dJ76SNgH84c44A5iXk42ci
Teraz chciałem na enpoint http://127.0.0.1:5000/upload używając postana wysłać plik.
Dodaje przez postmana plik, jednak się nie zapisuje. O czym zapomniałem?
#naukaprogramowania #python
źródło: comment_1610993178JoJQfTM5eP2mcm1xBrmWxa.jpg
Pobierzźródło: comment_1611006046QAJXfcZRNuT1EWYNn6XRLl.jpg
Pobierzźródło: comment_1611006798yjgdY5z11nzmtUPL8aoq5c.jpg
Pobierzźródło: comment_1611008129kVEVE7yNdrAHylKJJlcNE5.jpg
Pobierz127.0.0.1 - - [18/Jan/2021 23:15:15] "GET /upload HTTP/1.1" 200 -
No file attached in request
['GET', 'POST']w przykładzie jest po to, by móc zaserwować jednocześnie obsługę przesłanych plików, jak i formularz do ich przesyłania. Mi działa coś takiego: https://pastebin.com/Nu3ZM6hAw Postmanie tak jak miałeś ustawione (URL na
[http://127.0.0.1:5000/upload](http://127.0.0.1:5000/upload), method naPOST, body naform-data, key nafilei typ File i wybrany plik):źródło: comment_1611010455I42NdqH9mOhk0hN8a2rpd5.jpg
PobierzUPLOAD_FOLDERmusi istnieć i pewnie musisz mieć do niego prawa zapisu. Ale to Ci już rzucony wyjątek powie co nieco jak to pominiesz :)źródło: comment_1611011782FVj7PUiHtRM0qLmh6nllNQ.jpg
Pobierzflask runw terminalu. Może musisz coś zaktualizować? U Ciebie jestWorkzeug/0.14.1 Python/3.7.1, u mnieWorkzeug/1.0.1 Python/3.8.5, ale nie wiem, czy to kwestia tego.Albo Postman nie dodaje odpowiedniego headera - wrzuc sobie w nowej linijce przed
print('No file part')coś takiego:print(request.headers['Content-Type'])i powiedz, co wypluwa. Powinno coś w stylu:multipart/form-data; boundary=--------------------------557840789672408393273316Content-Type:multipart/form-data, to go dodaj:źródło: comment_16110138898Dw2nIvo8OCZRXsKO7F3sO.jpg
Pobierz