Projekt końcowy: lista zadania dla Flask i SQLite
To samo zadanie, które lista rozpoczęło ten rozdział, teraz z trwałym przechowywaniem, JSON API i walidacją danych wejściowych.
Wszystko, co analizowano w sekcjach 22.7-22.34, łączy się w jednej działającej aplikacji — tej samej liście zadań, od której rozpoczął się rozdział, teraz ze stałym przechowywaniem w SQLite.
projects/flask/todo-app/app.py
| Plik | Rola |
|---|---|
| app.py | Trasy, współpraca z bazą danych, API |
| schema.sql | Struktura tabeli tasks |
| templates/base.html | Ogólnie strona wireframe, w tym flash() posty |
| templates/index.html | Lista zadań, dodaj formularz |
| templates/privet.html | Historyczna strona powitalna z sekcji 22.5 |
| templates/404.html | Strona Nieznaleziona |
| static/style.css | Style niestandardowe, bez zewnętrznych CDN |
Co może zrobić gotowy wniosek
method="post"zamiast prostych odniesień <a href="/udalit/…">.Uruchomienie
cd projects/flask/todo-app
python app.py
Pierwsze uruchomienie samo tworzy plik bazy danych i tabelę — nie jest potrzebny oddzielny polecenie do tego. Otwórz http://127.0.0.1:5000/: dodaj zadanie,
Oznacz jako zakończony, usuń ją, odśwież stronę w trakcie procesu, samodzielnie ją zrestartuj
Przetwarzaj i upewnij się, że lista pozostaje bez zmian.
Aplikacja działa także na wąskich ekranach: układ CSS (sekcja 22.3) został przebudowany dla szerokości telefonu komórkowego bez poziomego przewijania strony.
Dodaj w index.html wiersz z liczbą niewykonanych zadań — {{ zadachi|selectattr('done', 'equalto', 0)|list|length }}.
Zmień zapytanie w glavnaya() tak, aby nieukończone zadania zawsze były wyświetlane przed ukończonymi — ORDER BY done, id.