Flask

Book description

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!

Table of contents

  1. Wstęp
    1. Dla kogo jest ta książka?
    2. Organizacja tej książki
    3. Jak pracować z przykładowym kodem?
    4. Używanie przykładowego kodu
    5. Konwencje używane w tej książce
    6. Podziękowania
    7. Podziękowania do wydania drugiego
  2. Część I Wprowadzenie do Flaska
  3. Rozdział 1. Instalacja
    1. Tworzenie katalogu aplikacji
    2. Wirtualne środowiska
    3. Tworzenie wirtualnego środowiska w Pythonie 3
    4. Tworzenie wirtualnego środowiska w Pythonie 2
    5. Praca z wirtualnymi środowiskami
    6. Instalowanie pakietów Pythona za pomocą narzędzia pip
  4. Rozdział 2. Podstawowa struktura aplikacji
    1. Inicjalizacja
    2. Trasy i funkcje widoku
    3. Kompletna aplikacja
    4. Roboczy serwer WWW
    5. Trasy dynamiczne
    6. Tryb debugowania
    7. Opcje wiersza polecenia
    8. Cykl żądanie – odpowiedź
      1. Kontekst aplikacji i żądania
      2. Przesyłanie żądania
      3. Obiekt żądania
      4. Hooki w żądaniach
      5. Odpowiedzi
    9. Rozszerzenia Flaska
  5. Rozdział 3. Szablony
    1. Mechanizm szablonów Jinja2
      1. Renderowanie szablonów
      2. Zmienne
      3. Struktury sterujące
    2. Integracja Bootstrapa z Flask-Bootstrap
    3. Niestandardowe strony błędów
    4. Łącza
    5. Pliki statyczne
    6. Lokalizowanie dat i czasu za pomocą pakietu Flask-Moment
  6. Rozdział 4. Formularze internetowe
    1. Konfiguracja
    2. Klasy formularzy
    3. Renderowanie formularzy HTML
    4. Obsługa formularzy w funkcjach widoku
    5. Przekierowania i sesje użytkownika
    6. Wyświetlanie komunikatów
  7. Rozdział 5. Bazy danych
    1. Bazy danych SQL
    2. Bazy danych NoSQL
    3. SQL czy NoSQL?
    4. Frameworki baz danych w Pythonie
    5. Zarządzanie bazą danych za pomocą Flask-SQLAlchemy
    6. Definicja modelu
    7. Relacje
    8. Operacje na bazach danych
      1. Tworzenie tabel
      2. Wstawianie wierszy
      3. Modyfikowanie wierszy
      4. Usuwanie wierszy
      5. Zapytanie o wiersze
    9. Wykorzystanie bazy danych w funkcjach widoku
    10. Integracja z powłoką Pythona
    11. Migrowanie baz danych za pomocą pakietu Flask-Migrate
      1. Tworzenie repozytorium migracji
      2. Tworzenie skryptu migracji
      3. Aktualizacja bazy danych
      4. Dodawanie kolejnych migracji
  8. Rozdział 6. Wiadomości e-mail
    1. Obsługa e-mail za pomocą rozszerzenia Flask-Mail
      1. Wysyłanie wiadomości e-mail z powłoki Pythona
      2. Integrowanie wiadomości e-mail z aplikacją
      3. Asynchroniczne wysyłanie e-maila
  9. Rozdział 7. Struktura dużej aplikacji
    1. Struktura projektu
    2. Opcje konfiguracji
    3. Pakiet aplikacji
      1. Korzystanie z fabryki aplikacji
      2. Implementacja funkcji aplikacji w projekcie
    4. Skrypt aplikacji
    5. Plik wymagań
    6. Testy jednostkowe
    7. Konfiguracja bazy danych
    8. Uruchamianie aplikacji
  10. Część II Przykład: Aplikacja do blogowania społecznościowego
  11. Rozdział 8. Uwierzytelnianie użytkownika
    1. Rozszerzenia uwierzytelnienia dla Flaska
    2. Bezpieczeństwo hasła
      1. Haszowanie haseł za pomocą pakietu Werkzeug
    3. Tworzenie schematu uwierzytelnienia
    4. Uwierzytelnianie użytkownika za pomocą Flask-Login
      1. Przygotowywanie modelu User na potrzeby logowania
      2. Ochrona tras
      3. Dodawanie formularza logowania
      4. Logowanie użytkowników
      5. Wylogowywanie użytkowników
      6. Jak działa Flask-Login?
      7. Testowanie
    5. Rejestrowanie nowego użytkownika
      1. Tworzenie formularza rejestracji użytkownika
      2. Rejestracja nowych użytkowników
    6. Potwierdzenie konta
      1. Generowanie tokenów potwierdzających za pomocą pakietu itsdangerous
      2. Wysyłanie wiadomości e-mail z potwierdzeniem
    7. Zarządzanie kontem
  12. Rozdział 9. Role użytkowników
    1. Reprezentacja ról w bazie danych
    2. Przypisanie ról
    3. Weryfikacja roli
  13. Rozdział 10. Profile użytkowników
    1. Informacje o profilu
    2. Strona profilu użytkownika
    3. Edytor profilu
      1. Edytor profilu z poziomu użytkownika
      2. Edytor profilu z poziomu administratora
    4. Awatary użytkownika
  14. Rozdział 11. Posty na blogu
    1. Przesyłanie i wyświetlanie postów na blogu
    2. Wpisy na blogach na stronach profilu
    3. Stronicowanie długich list postów na blogu
      1. Tworzenie fałszywych danych w postach na blogu
      2. Renderowanie na stronach
      3. Dodawanie widżetu stronicowania
    4. Posty z formatowaniem przy użyciu pakietów Markdown i Flask-PageDown
      1. Korzystanie z pakietu Flask-PageDown
      2. Obsługa tekstu sformatowanego na serwerze
    5. Stałe linki do postów na blogu
    6. Edytor postów
  15. Rozdział 12. Obserwatorzy
    1. I znowu relacje w bazach danych
      1. Relacje typu wiele-do-wielu
      2. Relacje samoreferencyjne
      3. Zaawansowane relacje wiele-do-wielu
    2. Obserwujący na stronie profilu
    3. Uzyskiwanie śledzonych postów za pomocą operacji Join
    4. Wyświetlanie obserwowanych postów na stronie głównej
  16. Rozdział 13. Komentarze użytkowników
    1. Zapisywanie komentarzy w bazie danych
    2. Przesyłanie i wyświetlanie komentarzy
    3. Moderowanie komentarzy
  17. Rozdział 14. Interfejsy programowania aplikacji
    1. Wprowadzenie do architektury REST
      1. Zasoby są wszystkim
      2. Metody żądania
      3. Treści żądań i odpowiedzi
      4. Kontrola wersji
    2. Flask i usługi sieciowe typu REST
      1. Tworzenie schematu interfejsu API
      2. Obsługa błędów
      3. Uwierzytelnianie użytkownika za pomocą Flask-HTTPAuth
      4. Uwierzytelnianie za pomocą tokenów
      5. Serializacja zasobów do i z formatu JSON
      6. Implementacja punktów końcowych dla zasobów
      7. Podział dużych kolekcji zasobów na strony
      8. Testowanie usług internetowych za pomocą HTTPie
  18. Część III Ostatnie kroki
  19. Rozdział 15. Testowanie
    1. Uzyskiwanie raportów pokrycia kodu
    2. Klient testowy Flaska
      1. Testowanie aplikacji internetowych
      2. Testowanie usług internetowych
    3. Kompleksowe testy z użyciem Selenium
    4. Czy warto?
  20. Rozdział 16. Wydajność
    1. Niska wydajność bazy danych
    2. Profilowanie kodu źródłowego
  21. Rozdział 17. Wdrożenie
    1. Etapy prac wdrożenia
    2. Protokołowanie błędów na produkcji
    3. Wdrożenie w chmurze
    4. Platforma Heroku
      1. Przygotowanie aplikacji
        1. Tworzenie konta Heroku
        2. Instalowanie interfejsu Heroku CLI
        3. Tworzenie aplikacji
        4. Przygotowanie bazy danych
        5. Konfigurowanie protokołowania
        6. Konfigurowanie poczty e-mail
        7. Dodanie pliku wymagań najwyższego poziomu
        8. Włączanie bezpiecznego HTTP z Flask-SSLify
        9. Uruchamianie produkcyjnego serwera WWW
        10. Dodawanie pliku Procfile
      2. Testowanie z wykorzystaniem Heroku Local
      3. Wdrażanie za pomocą polecenia git push
        1. Przeglądanie dzienników aplikacji
      4. Wdrażanie aktualizacji
    5. Kontenery na platformie Docker
      1. Instalowanie Dockera
      2. Budowanie obrazu kontenera
      3. Uruchamianie kontenera
      4. Sprawdzanie działającego kontenera
      5. Przekazywanie obrazu kontenera do rejestru zewnętrznego
      6. Korzystanie z zewnętrznej bazy danych
      7. Orkiestracja kontenerów za pomocą Docker Compose
      8. Sprzątanie starych kontenerów i obrazów
      9. Korzystanie z platformy Docker podczas produkcji
    6. Tradycyjne wdrożenia
      1. Konfiguracja serwera
      2. Importowanie zmiennych środowiskowych
      3. Konfigurowanie protokołowania
  22. Rozdział 18. Dodatkowe zasoby
    1. Korzystanie ze zintegrowanego środowiska programistycznego (IDE)
    2. Wyszukiwanie rozszerzeń
    3. Uzyskiwanie pomocy
    4. Angażowanie się w społeczność Flaska
      1. O autorze
      2. Kolofon

Product information

  • Title: Flask
  • Author(s): Miguel Grinberg
  • Release date: March 2020
  • Publisher(s): Helion
  • ISBN: 9788328363830