Blog JSystems - uwalniamy wiedzę!
Blog JSystems - uwalniamy wiedzę!
Do obsługi formularza potrzebne będą dwa elementy. Jeden dbający o to co się ma stać gdy wejdziemy na formularz (GET), oraz co się ma stać gdy formularz zatwierdzimy (POST). Funkcja na potrzeby wyświetlenia formularza nie odbiega od wcześniej tworzonych i sprowadza się do wyświetlenia strony html:

Kod z powyższego zrzutu (do skopiowania):
@app.route("/addProduct")
def addProduct():
return render_template("addProduct.html")
Musimy zrobić również formularz w HTML:

Kod z powyższego zrzutu (do skopiowania):
<form method="POST">
<table>
<tr>
<td>Nazwa</td>
<td><input type="text" name="name"/></td>
</tr>
<tr>
<td>Opis</td>
<td><input type="text" name="desc"/></td>
</tr>
</table>
<input type="submit" value="Wyślij"/>
</form>
Tutaj również nie ma nic nadzwyczajnego, ot zwykły formularz w HTML. Zwróć jednak uwagę na atrybut „name” obu inputów. Po tych właśnie nazwach będziemy odbierać dane na poziomie kontrolera. Ciekawsze rzeczy znajdują się w obsłudze zatwierdzenia formularza:

Kod z powyższego zrzutu (do skopiowania):
@app.route("/addProduct", methods=['POST'])
def addProductPost():
nazwa=request.form['name']
opis=request.form['desc']
print(f"nazwa={nazwa}, opis={opis}")
return render_template("addProduct.html")
Pierwsza różnica ujawnia się w linii 11. Dochodzi nam dodatkowy argument „methods”. Dodajemy go by Flask wiedział kiedy ta funkcja ma zostać wywołana. Domyślną wartością jest „GET”. Dalej dzięki słownikowi „form” zawartym w obiekcie request (który trzeba zaimportować jak wcześniej) odczytuję na podstawie nazw inputów dane z formularza. Dalej (linie 15-16) wyświetlam na konsoli odczytane wartości i ponownie prezentuję formularz.

Konsola:

Komentarze (0)
Brak komentarzy...