Django 5. Praktyczne tworzenie aplikacji internetowych w Pythonie. Wydanie V - Helion

Tytuł oryginału: Django 5 By Example: Build powerful and reliable Python web applications from scratch, 5th Edition
Tłumaczenie: Rados
ISBN: 978-83-289-1883-2
stron: 744, Format: ebook
Data wydania: 2025-01-01
Księgarnia: Helion
Cena książki: 104,30 zł (poprzednio: 149,00 zł)
Oszczędzasz: 30% (-44,70 zł)
Nakład wyczerpany
Django pozwala na pe
Zobacz także:
- Django 4. Praktyczne tworzenie aplikacji sieciowych. Wydanie IV 125,48 zł, (38,90 zł -69%)
- Flask. Kurs video. Od pierwszej linijki kodu do praktycznego zastosowania 119,00 zł, (47,60 zł -60%)
- Python na start. Kurs video. Tw 99,00 zł, (39,60 zł -60%)
- Python. Kurs video. Programowanie asynchroniczne 97,32 zł, (39,90 zł -59%)
- Flask. Kurs video. Stw 129,00 zł, (58,05 zł -55%)
Spis treści
Django 5. Praktyczne tworzenie aplikacji internetowych w Pythonie. Wydanie V eBook -- spis treści
Słowo wstępne
O autorze
O recenzencie
O czytelnikach wersji beta
Przedmowa
Rozdział 1. Utworzenie aplikacji bloga
- Instalacja Pythona
- Tworzenie środowiska wirtualnego w Pythonie
- Instalacja Django
- Instalowanie Django za pomocą pip
- Ogólne informacje na temat frameworka Django
- Główne komponenty frameworka
- Architektura Django
- Nowe funkcjonalności w Django 5
- Tworzenie pierwszego projektu
- Stosowanie początkowych migracji bazy danych
- Uruchamianie serwera programistycznego
- Ustawienia projektu
- Projekty i aplikacje
- Utworzenie aplikacji
- Tworzenie modeli danych dla bloga
- Utworzenie modelu Post
- Dodawanie pól daty i godziny
- Definiowanie domyślnej kolejności sortowania
- Dodawanie indeksu bazy danych
- Aktywacja aplikacji
- Dodawanie pola stanu
- Dodanie relacji wiele do jednego
- Tworzenie i stosowanie migracji
- Tworzenie witryny administracyjnej dla modeli
- Tworzenie superużytkownika
- Witryna administracyjna Django
- Dodawanie modeli do witryny administracyjnej
- Personalizacja sposobu wyświetlania modeli
- Dodawanie liczby aspektów do filtrów
- Praca z obiektami QuerySet i menedżerami
- Tworzenie obiektów
- Aktualizowanie obiektów
- Pobieranie obiektów
- Filtrowanie obiektów
- Korzystanie z różnych metod dopasowywania pól
- Łączenie filtrów w łańcuch
- Wykluczanie obiektów
- Sortowanie obiektów
- Ograniczanie wynikowych obiektów QuerySet
- Zliczanie obiektów
- Sprawdzanie, czy obiekt istnieje
- Usuwanie obiektów
- Złożone dopasowania z wykorzystaniem obiektów Q
- Kiedy następuje określenie zawartości kolekcji QuerySet?
- Więcej informacji o obiektach QuerySet
- Utworzenie menedżerów modelu
- Przygotowanie widoków listy i szczegółów
- Utworzenie widoków listy i szczegółów
- Korzystanie ze skrótu get_object_or_404
- Dodanie wzorców adresów URL do widoków
- Utworzenie szablonów dla widoków
- Tworzenie szablonu bazowego
- Utworzenie szablonu listy postów
- Uruchomienie aplikacji
- Tworzenie szablonu szczegółów posta
- Cykl żądanie-odpowiedź
- Polecenia zarządzające używane w tym rozdziale
- Podsumowanie
- Zasoby dodatkowe
Rozdział 2. Usprawnianie bloga i dodanie funkcjonalności społecznościowych
- Przegląd funkcjonalności
- Kanoniczne adresy URL dla modeli
- Tworzenie dla postów adresów URL przyjaznych dla SEO
- Modyfikowanie wzorców adresów URL
- Modyfikowanie widoków
- Modyfikowanie kanonicznego adresu URL dla postów
- Dodanie stronicowania
- Dodanie stronicowania do widoku listy postów
- Tworzenie szablonu stronicowania
- Obsługa błędów stronicowania
- Użycie widoków opartych na klasach
- Po co korzystać z widoków opartych na klasach?
- Użycie widoku opartego na klasie do wyświetlania listy postów
- Polecanie postów przez e-mail
- Tworzenie formularzy w Django
- Obsługa formularzy w widokach
- Wysyłanie wiadomości e-mail w Django
- Korzystanie ze zmiennych środowiskowych
- Wysyłanie wiadomości e-mail w widokach
- Renderowanie formularzy w szablonach
- Utworzenie systemu komentarzy
- Tworzenie modelu komentarzy
- Dodawanie modeli do witryny administracyjnej
- Utworzenie formularzy na podstawie modeli
- Obsługa klasy ModelForm w widokach
- Tworzenie szablonów formularza komentarza
- Dodawanie komentarzy do widoku szczegółów posta
- Dodawanie komentarzy do szablonu szczegółów posta
- Uproszczone szablony do renderowania pól formularzy
- Podsumowanie
- Dodatkowe zasoby
Rozdział 3. Rozbudowa aplikacji bloga
- Przegląd funkcjonalności
- Implementacja systemu tagowania za pomocą modułu django-taggit
- Pobieranie postów według podobieństwa
- Utworzenie własnych filtrów i znaczników szablonu
- Utworzenie własnych znaczników szablonu
- Utworzenie tagu szablonu typu simple_tag
- Tworzenie znacznika szablonu typu inclusion_tag
- Tworzenie znacznika szablonu, który zwraca kolekcję QuerySet
- Utworzenie własnych filtrów szablonu
- Tworzenie filtra szablonu obsługującego składnię Markdown
- Dodanie mapy witryny
- Utworzenie kanału wiadomości dla postów bloga
- Dodanie do bloga wyszukiwania pełnotekstowego
- Instalacja Dockera
- Instalacja PostgreSQL
- Zrzucanie istniejących danych
- Przełączanie bazy danych w projekcie
- Ładowanie danych do nowej bazy danych
- Proste wyszukiwania
- Wyszukiwanie w wielu polach
- Utworzenie widoku wyszukiwania
- Stemming i ranking wyników
- Stemming i usuwanie słów ze stoplisty dla różnych języków
- Wagi zapytań
- Wyszukiwanie z podobieństwem trygramu
- Podsumowanie
- Rozszerzanie projektu z wykorzystaniem sztucznej inteligencji
- Dodatkowe zasoby
Rozdział 4. Utworzenie witryny społecznościowej
- Przegląd funkcjonalności
- Utworzenie projektu witryny społecznościowej
- Rozpoczęcie pracy nad aplikacją społecznościową
- Użycie frameworka uwierzytelniania w Django
- Utworzenie widoku logowania
- Użycie wbudowanych widoków uwierzytelniania w Django
- Widoki logowania i wylogowania
- Widoki zmiany hasła
- Widoki odzyskiwania hasła
- Rejestracja użytkownika i profile użytkownika
- Rejestracja użytkownika
- Rozbudowa modelu User
- Instalowanie modułu Pillow i udostępnianie plików multimedialnych
- Tworzenie migracji dla modelu Profile
- Podsumowanie
- Dodatkowe zasoby
Rozdział 5. Implementacja uwierzytelniania za pomocą witryn społecznościowych
- Przegląd funkcjonalności
- Wymagania techniczne
- Użycie frameworka messages
- Implementacja własnego backendu uwierzytelniania
- Uniemożliwianie użytkownikom korzystania z istniejącego adresu e-mail
- Dodanie do witryny uwierzytelnienia za pomocą innej witryny społecznościowej
- Uruchomienie serwera programistycznego za pośrednictwem HTTPS
- Uwierzytelnianie za pomocą serwisu Google
- Tworzenie profili dla użytkowników rejestrujących się za pomocą uwierzytelniania społecznościowego
- Podsumowanie
- Dodatkowe zasoby
Rozdział 6. Udostępnianie treści w witrynie internetowej
- Przegląd funkcjonalności
- Utworzenie witryny internetowej do kolekcjonowania obrazów
- Utworzenie modelu Image
- Zdefiniowanie relacji typu "wiele do wielu"
- Rejestracja modelu Image w witrynie administracyjnej
- Umieszczanie treści pochodzącej z innych witryn internetowych
- Usunięcie zawartości pól formularza
- Instalowanie biblioteki Requests
- Nadpisanie metody save() egzemplarza ModelForm
- Utworzenie bookmarkletu za pomocą JavaScript
- Utworzenie szczegółowego widoku obrazu
- Utworzenie miniatur za pomocą modułu easy-thumbnails
- Dodawanie asynchronicznych operacji za pomocą JavaScript
- Załadowanie JavaScript w modelu DOM
- Ataki CSRF w żądaniach HTTP w JavaScript
- Wykonywanie żądań HTTP za pomocą JavaScript
- Dodanie do listy obrazów nieskończonego stronicowania
- Podsumowanie
- Dodatkowe zasoby
Rozdział 7. Śledzenie działań użytkownika
- Przegląd funkcjonalności
- Utworzenie systemu obserwacji
- Utworzenie relacji typu "wiele do wielu" za pomocą modelu pośredniego
- Utworzenie widoków listy i szczegółów dla profilu użytkownika
- Dodanie działań obserwowania i rezygnacji z obserwowania użytkownika za pomocą JavaScript
- Opracowanie strumienia aktywności aplikacji
- Użycie frameworka contenttypes
- Dodanie do modelu relacji generycznych
- Uniknięcie powielonych działań w strumieniu aktywności
- Dodanie działania użytkownika do strumienia aktywności
- Wyświetlanie strumienia aktywności
- Optymalizacja kolekcji QuerySet dotyczącej powiązanych obiektów
- Tworzenie szablonów dla działań użytkowników
- Użycie sygnałów dla denormalizowanych zliczeń
- Praca z sygnałami
- Definiowanie klas konfiguracyjnych aplikacji
- Korzystanie z paska narzędzi Django Debug Toolbar
- Instalacja paska narzędzi Django Debug Toolbar
- Panele paska narzędzi Django Debug Toolbar
- Polecenia paska narzędzi Django Debug Toolbar
- Zliczanie wyświetleń obrazu za pomocą bazy danych Redis
- Instalacja bazy danych Redis
- Użycie bazy danych Redis z Pythonem
- Przechowywanie widoków obrazów w bazie danych Redis
- Przechowywanie rankingu w bazie danych Redis
- Kolejne kroki z bazą danych Redis
- Podsumowanie
- Rozszerzanie projektu przy użyciu sztucznej inteligencji
- Dodatkowe zasoby
Rozdział 8. Utworzenie sklepu internetowego
- Przegląd funkcjonalności
- Utworzenie projektu sklepu internetowego
- Utworzenie modeli katalogu produktów
- Rejestracja modeli katalogu w witrynie administracyjnej
- Utworzenie widoków katalogu
- Utworzenie szablonów katalogu
- Utworzenie koszyka na zakupy
- Użycie frameworka sessions Django
- Ustawienia sesji
- Wygaśnięcie sesji
- Przechowywanie koszyka na zakupy w sesji
- Utworzenie widoków koszyka na zakupy
- Utworzenie procesora kontekstu dla bieżącego koszyka na zakupy
- Rejestracja zamówień klienta
- Utworzenie modeli zamówienia
- Dołączenie modeli zamówienia do witryny administracyjnej
- Utworzenie zamówień klienta
- Zadania asynchroniczne
- Wykorzystywanie zadań asynchronicznych
- Wątki robocze, kolejki komunikatów i brokery komunikatów
- Podsumowanie
- Dodatkowe zasoby
Rozdział 9. Zarządzanie płatnościami i zamówieniami
- Przegląd funkcjonalności
- Integracja bramki płatności
- Utworzenie konta Stripe
- Instalowanie biblioteki Pythona obsługi serwisu Stripe
- Dodanie do projektu obsługi serwisu Stripe
- Budowanie procesu płatności
- Testowanie płatności
- Korzystanie z webhooków do otrzymywania powiadomień o płatnościach
- Odwoływanie się do płatności Stripe w zamówieniach
- Wdrożenie do produkcji
- Eksport zamówień do plików CSV
- Dodanie własnych działań do witryny administracyjnej
- Rozbudowa witryny administracyjnej za pomocą własnych widoków
- Dynamiczne generowanie faktur w formacie PDF
- Instalacja WeasyPrint
- Utworzenie szablonu PDF
- Renderowanie plików w formacie PDF
- Wysyłanie dokumentów PDF za pomocą poczty elektronicznej
- Podsumowanie
- Dodatkowe zasoby
Rozdział 10. Rozbudowa sklepu internetowego
- Przegląd funkcjonalności
- Utworzenie systemu kuponów
- Utworzenie modeli kuponu
- Zastosowanie kuponu w koszyku na zakupy
- Zastosowanie kuponu w zamówieniu
- Zastosowanie kuponów w sesji Stripe Checkout
- Dodawanie kuponów do zamówień w serwisie administracyjnym oraz do faktur w formacie PDF
- Utworzenie silnika rekomendacji produktów
- Rekomendacja produktów na podstawie wcześniejszych transakcji
- Podsumowanie
- Dodatkowe zasoby
Rozdział 11. Internacjonalizacja sklepu internetowego
- Przegląd funkcjonalności
- Internacjonalizacja za pomocą Django
- Ustawienia internacjonalizacji i lokalizacji
- Polecenia przeznaczone do zarządzania internacjonalizacją
- Instalowanie zestawu narzędzi gettext
- Jak dodać tłumaczenie do projektu Django?
- W jaki sposób Django określa bieżący język?
- Przygotowanie projektu do internacjonalizacji
- Tłumaczenie kodu Pythona
- Tłumaczenie standardowe
- Tłumaczenie leniwe
- Tłumaczenia zawierające zmienne
- Liczba mnoga w tłumaczeniach
- Tłumaczenie własnego kodu
- Tłumaczenie szablonów
- Znacznik szablonu {% translate %}
- Znacznik szablonu {% blocktranslate %}
- Tłumaczenie szablonów sklepu internetowego
- Użycie interfejsu do tłumaczeń o nazwie Rosetta
- Tłumaczenia niejednoznaczne
- Wzorce adresów URL dla internacjonalizacji
- Dodanie prefiksu języka do wzorców adresów URL
- Tłumaczenie wzorców adresów URL
- Umożliwienie użytkownikowi zmiany języka
- Tłumaczenie modeli za pomocą django-parler
- Instalacja django-parler
- Tłumaczenie pól modelu
- Integracja tłumaczeń w witrynie administracyjnej
- Utworzenie migracji dla tłumaczeń modeli
- Korzystanie z tłumaczeń w kolekcjach QuerySet
- Adaptacja widoków dla tłumaczeń
- Lokalizacja formatów
- Użycie modułu django-localflavor do weryfikacji pól formularza
- Rozszerzanie projektu przy użyciu sztucznej inteligencji
- Podsumowanie
- Dodatkowe zasoby
Rozdział 12. Budowa platformy e-learningu
- Przegląd funkcjonalności
- Utworzenie platformy e-learningu
- Obsługa plików multimedialnych
- Utworzenie modeli kursu
- Rejestracja modeli w witrynie administracyjnej
- Użycie fikstur w celu dostarczenia początkowych danych dla modeli
- Utworzenie modeli dla zróżnicowanej treści
- Wykorzystanie dziedziczenia modeli
- Utworzenie modeli treści
- Utworzenie własnych pól modelu
- Dodawanie porządkowania do modułów i obiektów treści
- Dodanie widoków uwierzytelniania
- Dodanie systemu uwierzytelniania
- Utworzenie szablonów uwierzytelniania
- Podsumowanie
- Dodatkowe zasoby
Rozdział 13. Tworzenie systemu zarządzania treścią
- Przegląd funkcjonalności
- Utworzenie systemu zarządzania treścią
- Utworzenie widoków opartych na klasach
- Użycie domieszek w widokach opartych na klasach
- Praca z grupami i uprawnieniami
- Zarządzanie modułami kursu i treścią
- Użycie zbiorów formularzy dla modułów kursów
- Dodanie treści do modułów kursów
- Zarządzanie modułami i treścią
- Zmiana kolejności modułów i treści
- Używanie domieszek z pakietu django-braces
- Podsumowanie
- Dodatkowe zasoby
Rozdział 14. Renderowanie i buforowanie treści
- Przegląd funkcjonalności
- Wyświetlanie katalogu kursów
- Dodanie rejestracji uczestnika
- Utworzenie widoku rejestracji uczestnika
- Zapisanie się na kurs
- Renderowanie treści kursu
- Uzyskanie dostępu do treści kursu
- Renderowanie różnych rodzajów treści
- Użycie frameworka buforowania
- Dostępne backendy buforowania
- Instalacja Memcached
- Instalowanie obrazu Docker mechanizmu Memcached
- Instalacja powiązania Memcached dla języka Python
- Ustawienia buforowania we frameworku Django
- Dodanie Memcached do projektu
- Poziomy buforowania
- Użycie niskopoziomowego API buforowania
- Sprawdzanie żądań pobierających dane z bufora za pomocą paska narzędzi Django Debug Toolbar
- Niskopoziomowe buforowanie na podstawie danych dynamicznych
- Buforowanie fragmentów szablonu
- Buforowanie widoków
- Użycie bufora dla poszczególnych witryn
- Backend buforowania oparty na bazie danych Redis
- Monitorowanie bazy danych Redis za pomocą Django Redisboard
- Podsumowanie
- Dodatkowe zasoby
Rozdział 15. Utworzenie API
- Przegląd funkcjonalności
- Utworzenie API typu RESTful
- Instalacja frameworka REST Django
- Definiowanie serializatorów
- Klasy parserów i renderowania formatów
- Utworzenie widoków listy i szczegółowego
- Wykorzystanie API
- Rozszerzanie serializatorów
- Dodawanie pól do serializatorów
- Implementacja w serializatorach pól obliczanych za pomocą metod
- Dodawanie stronicowania do widoków
- Tworzenie serializatora kursów
- Serializacja relacji
- Opracowanie zagnieżdżonych serializatorów
- Utworzenie kolekcji ViewSet i routerów
- Tworzenie własnych widoków API
- Obsługa uwierzytelniania
- Implementacja podstawowego uwierzytelniania
- Określenie uprawnień do widoków
- Dołączanie dodatkowych operacji do kolekcji ViewSet
- Tworzenie niestandardowych uprawnień
- Serializacja treści kursu
- Wykorzystanie API RESTful
- Podsumowanie
- Dodatkowe zasoby
Rozdział 16. Budowanie serwera czatu
- Przegląd funkcjonalności
- Utworzenie aplikacji czatu
- Implementacja widoku pokoju czatu
- Komunikacja w czasie rzeczywistym w Django za pomocą frameworka Channels
- Aplikacje asynchroniczne z wykorzystaniem ASGI
- Cykl żądanie-odpowiedź z wykorzystaniem frameworka Channels
- Instalacja frameworków Channels i Daphne
- Pisanie konsumenta
- Routing
- Implementacja klienta WebSocket
- Warstwa kanału komunikacyjnego
- Kanały komunikacyjne i grupy
- Konfiguracja warstwy kanału komunikacyjnego z wykorzystaniem Redis
- Aktualizacja konsumenta w celu rozgłaszania wiadomości
- Dodawanie kontekstu do wiadomości
- Modyfikacja konsumenta w celu uzyskania pełnej asynchroniczności
- Utrwalanie wiadomości w bazie danych
- Utworzenie modelu dla wiadomości czatu
- Dodanie modelu Message do witryny administracyjnej
- Zapisywanie wiadomości w bazie danych
- Wyświetlanie historii czatu
- Integracja aplikacji czatu z istniejącymi widokami
- Podsumowanie
- Dodatkowe zasoby
Rozdział 17. Wdrożenie
- Tworzenie środowiska produkcyjnego
- Zarządzanie ustawieniami dla wielu środowisk
- Korzystanie z systemu Docker Compose
- Instalacja Docker Compose za pośrednictwem Docker Desktop
- Tworzenie pliku Dockerfile
- Dodanie wymagań Pythona
- Tworzenie pliku Docker Compose
- Konfigurowanie usługi PostgreSQL
- Stosowanie migracji bazy danych i tworzenie superużytkownika
- Konfigurowanie usługi Redis
- Serwowanie Django za pomocą WSGI i NGINX
- Korzystanie z uWSGI
- Konfiguracja uWSGI
- Korzystanie z NGINX
- Konfiguracja NGINX
- Korzystanie z nazwy hosta
- Udostępnianie zasobów statycznych i multimedialnych
- Zabezpieczanie witryny za pomocą protokołu SSL/TLS
- Sprawdzenie gotowości projektu do wdrożenia do produkcji
- Konfiguracja projektu do obsługi SSL/TLS
- Utworzenie certyfikatu SSL/TLS
- Konfiguracja serwera NGINX do wykorzystania SSL/TLS
- Przekierowywanie ruchu HTTP do HTTPS
- Konfiguracja serwera Daphne do wykorzystania z frameworkiem Django Channels
- Wykorzystanie bezpiecznych połączeń dla gniazd WebSocket
- Uwzględnienie Daphne w konfiguracji NGINX
- Utworzenie własnej warstwy middleware
- Utworzenie oprogramowania middleware do obsługi subdomeny
- Implementacja własnych poleceń administracyjnych
- Podsumowanie
- Rozszerzanie projektu przy użyciu sztucznej inteligencji
- Dodatkowe zasoby