Flask. Tworzenie aplikacji internetowych w Pythonie. Wydanie II - Helion
Tytuł oryginału: Flask Web Development: Developing Web Applications with Python, 2nd Edition
Tłumaczenie: Wojciech Moch
ISBN: 978-83-283-6383-0
stron: 264, Format: 168x237, okładka: miękka
Data wydania: 2020-03-10
Księgarnia: Helion
Cena książki: 41,40 zł (poprzednio: 69,00 zł)
Oszczędzasz: 40% (-27,60 zł)
Frameworki bardzo ułatwiają życie programistom. Pozwalają na szybkie tworzenie nawet rozbudowanych aplikacji, ale praca z frameworkiem najczęściej oznacza duże ograniczenia w doborze technologii. Wszystko jest w porządku, dopóki deweloper stosuje dokładnie te rozwiązania, które zaplanowali twórcy frameworka. Jeśli jednak zechce użyć innej bazy danych albo wykorzystać własną, autorską metodę uwierzytelniania użytkowników, może napotkać różne nieprzewidziane problemy. Szczęśliwie nie wszystkie mikrośrodowiska zachowują się w ten sposób. Framework napisany w Pythonie Flask, w odróżnieniu od typowych frameworków, umożliwia swobodne dobieranie technologii i komponentów aplikacji, a nawet tworzenie własnych rozwiązań. Oznacza to, że Flask pozwoli Ci zachować pełną kontrolę nad budowanym oprogramowaniem!
To książka przeznaczona dla twórców aplikacji internetowych, którzy chcą nauczyć się pisać rozbudowane oprogramowanie we Flasku. W praktyczny sposób przedstawia proces tworzenia kompletnej aplikacji, od programu zawierającego zaledwie kilka linii kodu aż po złożone oprogramowanie z wieloma zaawansowanymi rozwiązaniami technicznymi. Rozpoczyna się gruntownym wprowadzeniem do Flaska i stopniowo przechodzi do nieco trudniejszych zagadnień, również takich jak migracje baz danych i API. Porusza też tematykę usług sieciowych typu REST, obsługi błędów, serializacji zasobów oraz korzystania z takich narzędzi jak Selenium czy Heroku. Przemyślany układ treści, którą zilustrowano praktycznymi przykładami kodu, ułatwia prześledzenie procesu stopniowej rozbudowy aplikacji o nowe funkcjonalności.
W książce znajdziesz między innymi:
- zasady programowania we Flasku
- opis struktury aplikacji Flasky i etapy jej budowy
- sposoby korzystania z szablonów
- strategie planowania testów jednostkowych i analizy wydajności aplikacji
- opcje wdrażania aplikacji Flask
Flask: wolność twórcza programisty!
Osoby które kupowały "Flask. Tworzenie aplikacji internetowych w Pythonie. Wydanie II", wybierały także:
- Docker. Kurs video. Zostań administratorem systemów IT 119,00 zł, (53,55 zł -55%)
- Docker. Kurs video. Praca z systemem konteneryzacji i Docker Swarm 89,00 zł, (40,05 zł -55%)
- DevOps dla zdesperowanych. Praktyczny poradnik przetrwania 67,00 zł, (33,50 zł -50%)
- DevOps w praktyce. Kurs video. Jenkins, Ansible, Terraform i Docker 198,98 zł, (99,49 zł -50%)
- Kubernetes. Tworzenie niezawodnych system 69,00 zł, (34,50 zł -50%)
Spis treści
Flask. Tworzenie aplikacji internetowych w Pythonie. Wydanie II -- spis treści
Wstęp 11
CZĘŚĆ I . WPROWADZENIE DO FLASKA
1. Instalacja 21
- Tworzenie katalogu aplikacji 22
- Wirtualne środowiska 22
- Tworzenie wirtualnego środowiska w Pythonie 3 23
- Tworzenie wirtualnego środowiska w Pythonie 2 23
- Praca z wirtualnymi środowiskami 24
- Instalowanie pakietów Pythona za pomocą narzędzia pip 25
2. Podstawowa struktura aplikacji 27
- Inicjalizacja 27
- Trasy i funkcje widoku 27
- Kompletna aplikacja 29
- Roboczy serwer WWW 29
- Trasy dynamiczne 31
- Tryb debugowania 32
- Opcje wiersza polecenia 33
- Cykl żądanie - odpowiedź 35
- Kontekst aplikacji i żądania 35
- Przesyłanie żądania 36
- Obiekt żądania 37
- Hooki w żądaniach 37
- Odpowiedzi 38
- Rozszerzenia Flaska 40
3. Szablony 41
- Mechanizm szablonów Jinja2 41
- Renderowanie szablonów 42
- Zmienne 43
- Struktury sterujące 44
- Integracja Bootstrapa z Flask-Bootstrap 45
- Niestandardowe strony błędów 48
- Łącza 51
- Pliki statyczne 51
- Lokalizowanie dat i czasu za pomocą pakietu Flask-Moment 52
4. Formularze internetowe 57
- Konfiguracja 57
- Klasy formularzy 58
- Renderowanie formularzy HTML 59
- Obsługa formularzy w funkcjach widoku 61
- Przekierowania i sesje użytkownika 64
- Wyświetlanie komunikatów 66
5. Bazy danych 69
- Bazy danych SQL 69
- Bazy danych NoSQL 70
- SQL czy NoSQL? 71
- Frameworki baz danych w Pythonie 71
- Zarządzanie bazą danych za pomocą Flask-SQLAlchemy 73
- Definicja modelu 74
- Relacje 75
- Operacje na bazach danych 77
- Tworzenie tabel 77
- Wstawianie wierszy 78
- Modyfikowanie wierszy 79
- Usuwanie wierszy 79
- Zapytanie o wiersze 79
- Wykorzystanie bazy danych w funkcjach widoku 81
- Integracja z powłoką Pythona 82
- Migrowanie baz danych za pomocą pakietu Flask-Migrate 83
- Tworzenie repozytorium migracji 83
- Tworzenie skryptu migracji 84
- Aktualizacja bazy danych 85
- Dodawanie kolejnych migracji 86
6. Wiadomości e-mail 87
- Obsługa e-mail za pomocą rozszerzenia Flask-Mail 87
- Wysyłanie wiadomości e-mail z powłoki Pythona 88
- Integrowanie wiadomości e-mail z aplikacją 89
- Asynchroniczne wysyłanie e-maila 90
7. Struktura dużej aplikacji 93
- Struktura projektu 93
- Opcje konfiguracji 94
- Pakiet aplikacji 96
- Korzystanie z fabryki aplikacji 96
- Implementacja funkcji aplikacji w projekcie 97
- Skrypt aplikacji 100
- Plik wymagań 100
- Testy jednostkowe 101
- Konfiguracja bazy danych 103
- Uruchamianie aplikacji 103
CZĘŚĆ II. PRZYKŁAD: APLIKACJA DO BLOGOWANIA SPOŁECZNOŚCIOWEGO
8. Uwierzytelnianie użytkownika 107
- Rozszerzenia uwierzytelnienia dla Flaska 107
- Bezpieczeństwo hasła 107
- Haszowanie haseł za pomocą pakietu Werkzeug 108
- Tworzenie schematu uwierzytelnienia 110
- Uwierzytelnianie użytkownika za pomocą Flask-Login 112
- Przygotowywanie modelu User na potrzeby logowania 112
- Ochrona tras 113
- Dodawanie formularza logowania 114
- Logowanie użytkowników 115
- Wylogowywanie użytkowników 117
- Jak działa Flask-Login? 117
- Testowanie 118
- Rejestrowanie nowego użytkownika 119
- Tworzenie formularza rejestracji użytkownika 119
- Rejestracja nowych użytkowników 121
- Potwierdzenie konta 122
- Generowanie tokenów potwierdzających za pomocą pakietu itsdangerous 122
- Wysyłanie wiadomości e-mail z potwierdzeniem 124
- Zarządzanie kontem 127
9. Role użytkowników 129
- Reprezentacja ról w bazie danych 129
- Przypisanie ról 132
- Weryfikacja roli 133
10. Profile użytkowników 137
- Informacje o profilu 137
- Strona profilu użytkownika 138
- Edytor profilu 140
- Edytor profilu z poziomu użytkownika 140
- Edytor profilu z poziomu administratora 142
- Awatary użytkownika 144
11. Posty na blogu 149
- Przesyłanie i wyświetlanie postów na blogu 149
- Wpisy na blogach na stronach profilu 152
- Stronicowanie długich list postów na blogu 152
- Tworzenie fałszywych danych w postach na blogu 153
- Renderowanie na stronach 154
- Dodawanie widżetu stronicowania 155
- Posty z formatowaniem przy użyciu pakietów Markdown i Flask-PageDown 158
- Korzystanie z pakietu Flask-PageDown 158
- Obsługa tekstu sformatowanego na serwerze 160
- Stałe linki do postów na blogu 161
- Edytor postów 162
12. Obserwatorzy 165
- I znowu relacje w bazach danych 165
- Relacje typu wiele-do-wielu 165
- Relacje samoreferencyjne 167
- Zaawansowane relacje wiele-do-wielu 168
- Obserwujący na stronie profilu 171
- Uzyskiwanie śledzonych postów za pomocą operacji Join 173
- Wyświetlanie obserwowanych postów na stronie głównej 176
13. Komentarze użytkowników 181
- Zapisywanie komentarzy w bazie danych 181
- Przesyłanie i wyświetlanie komentarzy 182
- Moderowanie komentarzy 184
14. Interfejsy programowania aplikacji 189
- Wprowadzenie do architektury REST 189
- Zasoby są wszystkim 190
- Metody żądania 190
- Treści żądań i odpowiedzi 191
- Kontrola wersji 192
- Flask i usługi sieciowe typu REST 193
- Tworzenie schematu interfejsu API 193
- Obsługa błędów 194
- Uwierzytelnianie użytkownika za pomocą Flask-HTTPAuth 195
- Uwierzytelnianie za pomocą tokenów 198
- Serializacja zasobów do i z formatu JSON 199
- Implementacja punktów końcowych dla zasobów 202
- Podział dużych kolekcji zasobów na strony 204
- Testowanie usług internetowych za pomocą HTTPie 205
CZĘŚĆ III. OSTATNIE KROKI
15. Testowanie 209
- Uzyskiwanie raportów pokrycia kodu 209
- Klient testowy Flaska 212
- Testowanie aplikacji internetowych 212
- Testowanie usług internetowych 215
- Kompleksowe testy z użyciem Selenium 217
- Czy warto? 221
16. Wydajność 223
- Niska wydajność bazy danych 223
- Profilowanie kodu źródłowego 225
17. Wdrożenie 227
- Etapy prac wdrożenia 227
- Protokołowanie błędów na produkcji 228
- Wdrożenie w chmurze 229
- Platforma Heroku 230
- Przygotowanie aplikacji 230
- Testowanie z wykorzystaniem Heroku Local 237
- Wdrażanie za pomocą polecenia git push 238
- Wdrażanie aktualizacji 239
- Kontenery na platformie Docker 240
- Instalowanie Dockera 240
- Budowanie obrazu kontenera 241
- Uruchamianie kontenera 244
- Sprawdzanie działającego kontenera 245
- Przekazywanie obrazu kontenera do rejestru zewnętrznego 246
- Korzystanie z zewnętrznej bazy danych 247
- Orkiestracja kontenerów za pomocą Docker Compose 248
- Sprzątanie starych kontenerów i obrazów 251
- Korzystanie z platformy Docker podczas produkcji 252
- Tradycyjne wdrożenia 252
- Konfiguracja serwera 253
- Importowanie zmiennych środowiskowych 253
- Konfigurowanie protokołowania 254
18. Dodatkowe zasoby 255
- Korzystanie ze zintegrowanego środowiska programistycznego (IDE) 255
- Wyszukiwanie rozszerzeń 256
- Uzyskiwanie pomocy 256
- Angażowanie się w społeczność Flaska 257