@qbek: kombinowałem właśnie z flask request i narazie bez sukcesu. Przebilem sie przez stackoverflow i dokumentacje ale wciąż nie wiem czemu to się nie spina i akurat tego znaleźć nie mogę. Pewnie źle szukam, gdzieś to musi być ale nie mam już trochę pomysłu, choć nie jest to jakoś super fancy opcja. Zaraz obczaję ten temat
@michael93pl: nie działa Ci rozwiązanie ze stacka? sprawdzasz czy request to POST i form jest bez błędów funkcją validateonsubmit i późniejszy redirect zmieniasz na redirect(url_for('success'), code=307) (nie jestem pewien czy 307 na pewno będzie Ci potrzebne, jednak spróbuj jeżeli request.form będzie puste) same dane z forma są bodaj w request.form.nazwapola (używaj pdb do debugu, albo na początek printuj sobie co Ci potrzebne)
@michael93pl: jak ty chcesz wyświetlać te dane skoro nigdzie ich nie przekazujesz? w przypadku faila przekazujesz dane w zmienej form ('submit.html', form=form)
w przypadku sukcesu masz tylko ('result_submit.html')
@michael93pl: nie wiem też do końca w co celujesz ale możesz alternatywnie: zastąpić w widoku index redirecta return redirect(url_for('success')) od razu na render innego szablonu return render_template('result_submit.html', dane=twojedane) i w nim będziesz miał normalnie wartości forma LUB pogrzebać przy submit.html tak żeby pokazywał pusty formularz na requesta GET a jak jest request POST z danymi to wyświetlał wysłane dane
@qbek: właśnie czułem, że brak przekazania danych, to #!$%@? opcja :D próbowałem na kilka sposób przekazać tam dane (stad ta "dupa" gdzies tam w petli w resultsubmit) ale ciagle mi to nie wychodzilo. Dodanie 307 do return redirect(urlfor('success')) wywalało mi błąd odnośnie jakiejś błędnej metody.
rendertemplate('resultsubmit.html', dane=twojedane) - tutaj właśnie ihmo jest błąd, na zasadzie, nie wiem do czego odnieść się, żeby te dane pobrać.
@qbek: Jeden Miruś mi stworzył podstawowy form, 2 dzień bawię się z Flaskiem i trochę po macoszemu wszystko robię, docsy przebijałem się kilka razy zanim tutaj napisałem i jedyne co wiem atm to co chcę osiągnąć :D fakt, importy powinienem wrzucić, tak dla poprawności politycznej ^^ - https://pastebin.com/yHtVtJB4
(ostatnio mnie jakiś mod zjechał na stacku, że za dużo wrzucam, tutaj poszedłem w minimalizm :D )
@qbek: jak ja tego nie lubię xD nie wiadomo jak i gdzie, ale coś się magicznie wstrzykuje a nawet funkcja która obsługuje requesta nie dodanego parametru by operować na danych z requesta xD
kocham magic programming aż mi się spring przypomina xD
@qbek: @gryzon_c: wiem i bardzo wam dzięki za to ^^ nie wiem czy to zmęcznie przez aktualną godzinę czy po prostu brak skilla i nie mogę tego zebrać w całość i wyciągnąć konkretnej odpowiedzi ale pokombinowanie samemu pewnie mi lepiej zrobi, niż gotowa odpowiedź. Względnie rozumiałem zasadę Flask'a do momentu tego wyciągnięcia danych, trochę gubię się w methodach get i post ale to też do nadrobienia :)
nie wiem czy to zmęcznie przez aktualną godzinę czy po prostu brak skilla i nie mogę tego zebrać w całość
przez to, że jest to #!$%@? zrobione. no bo sorry ale właśnie przez takie rzeczy jak magiczne ładowanie ciężko zrozumieć co się dzieje.
gdybyś musiał operować na obiekcie request i response to byś skumał jak to działa, jak działa przekazywanie danych ale że nie musisz bo jakaś biblioteka robi
@gryzon_c: W Django bawiłem się może kilka godzin, tutaj Flask trochę z polecenia, żeby rozwiązać na szybko kwestie inputu nie przez console tylko webowo. Choć jak sami doszliście, dziwne w takim razie, że na tyle Flask pozwala. Mnie trochę zdziwiła "prostota" flask-sqlalchemy względem samego sqlalchemy, trochę więcej musiałem tam poustawiać, żeby tworzyło mi wszystkie tabele. Znając siebie i tak dzisiaj nie pójdę spać, zanim nie zadziała mi to, lubie kiedy
@michael93pl: najważniejsze stary to zrozumienie jak to działa, przynajmniej mniej wiecej. jeśli nie zrozumiesz to polegniesz przy jakiś bardziej zaawansowanych rzeczach których nie będzie w tutorialach.
na chwile obecną zamiast uczyć się django/flaska musisz ogarnąć podstawy protokołu html - metody (get, post, delete, patch etc), nagłówki, jak to się dzieje, że dane z formularza są gdzieś wysyłane, jak to wygląda. co to jest sesja a co to ciasteczko, jak działa
@gryzon_c: jak najbardziej masz rację, tutaj ewidentnie uczę się na bieżąco, przerzucam tone danych z docs i stacka odnośnie konkretnego problemu, a nie mam podstawy protokułu html'a ( swoją drogą, myślałem, że mam ;p) najwyższy czas to nadrobić
A tutaj jest submit.html https://pastebin.com/N1hewdZh
I dodatkowo formhelpers.html https://pastebin.com/wagdjY0u
if form.validate_on_submit():
return redirect(url_for('success'))
"gubi" część informacji (robisz redirecta ale nie przekazujesz danych z posta/formularza)
obczaj https://stackoverflow.com/questions/15473626/make-a-post-request-while-redirecting-in-flask
zobacz też
flask request
sprawdzasz czy request to POST i form jest bez błędów funkcją validateonsubmit i późniejszy redirect zmieniasz na
redirect(url_for('success'), code=307)
(nie jestem pewien czy 307 na pewno będzie Ci potrzebne, jednak spróbuj jeżelirequest.form
będzie puste)same dane z forma są bodaj w
request.form.nazwapola
(używaj pdb do debugu, albo na początek printuj sobie co Ci potrzebne)('submit.html', form=form)
w przypadku sukcesu masz tylko ('result_submit.html')
flask nie jest telepatą xD
nie wiem też do końca w co celujesz ale możesz alternatywnie:
zastąpić w widoku index redirecta
return redirect(url_for('success'))
od razu na render innego szablonureturn render_template('result_submit.html', dane=twojedane)
i w nim będziesz miał normalnie wartości forma LUB pogrzebać przy submit.html tak żeby pokazywał pusty formularz na requesta GET a jak jest request POST z danymi to wyświetlał wysłane daneno i pisz co dokładnie Ci nie działa :P
form = MyForm()
nie powinieneś w przypadku posta podkarmić jakoś te form na przykład requestem? tak na logikę.
if coś tam post:
form = Myform(request)
https://docs.djangoproject.com/en/2.0/topics/forms/#the-view
rendertemplate('resultsubmit.html', dane=twojedane) - tutaj właśnie ihmo jest błąd, na zasadzie, nie wiem do czego odnieść się, żeby te dane pobrać.
Próbowałem
form = Myform(request.form)
jak widzisz w oficjalnych dokach flaska http://flask.pocoo.org/docs/0.12/patterns/wtforms/#in-the-viewjednak w tym konkretnym przypadku widzę że używasz metody validateonsubmit a sama klasa MyForm dziedziczy z FlaskForm (który zgaduję) jest częścią pakietu flask_wtf
http://flask-wtf.readthedocs.io/en/stable/quickstart.html#validating-forms więc użycie request.form nie jest konieczne, z doków:
(ostatnio mnie jakiś mod zjechał na stacku, że za dużo wrzucam, tutaj poszedłem w minimalizm :D )
@qbek: jak ja tego nie lubię xD nie wiadomo jak i gdzie, ale coś się magicznie wstrzykuje a nawet funkcja która obsługuje requesta nie dodanego parametru by operować na danych z requesta xD
kocham magic programming aż mi się spring przypomina xD
czy jeszcze czegoś nie rozumiesz albo coś Ci nie działa? w sumie wszystko Ci dość ekstensywnie rozpisaliśmy ;-)
BTW importy popraw żeby nie importować 2 razy z tego samego
przez to, że jest to #!$%@? zrobione. no bo sorry ale właśnie przez takie rzeczy jak magiczne ładowanie ciężko zrozumieć co się dzieje.
gdybyś musiał operować na obiekcie request i response to byś skumał jak to działa, jak działa przekazywanie danych ale że nie musisz bo jakaś biblioteka robi
na chwile obecną zamiast uczyć się django/flaska musisz ogarnąć podstawy protokołu html - metody (get, post, delete, patch etc), nagłówki, jak to się dzieje, że dane z formularza są gdzieś wysyłane, jak to wygląda. co to jest sesja a co to ciasteczko, jak działa