Django 4. Praktyczne tworzenie aplikacji sieciowych. Wydanie 4 - ebook
Django 4. Praktyczne tworzenie aplikacji sieciowych. Wydanie 4 - ebook
Django służy do tworzenia aplikacji internetowych w Pythonie. Pozwala w pełni skorzystać z zalet tego języka, a przy tym jest łatwy do nauki. Praca z Django jest atrakcyjna dla programistów o różnym stopniu zaawansowania, co potwierdzają badania ankietowe serwisu Stack Overflow. Aby zapewnić swoim aplikacjom odpowiednią jakość, trzeba poznać sposób działania Django, stosować najlepsze praktyki, a także skutecznie wdrażać i testować aplikację.
Być może Django jest dla Ciebie zupełną nowością, a może posiadasz już pewną wiedzę na jego temat i chcesz wycisnąć z niego jak najwięcej ... czwarte wydanie poświęconego mu podręcznika pomoże Ci opanować kluczowe umiejętności związane z obsługą tego frameworka. Pokazano tu techniki tworzenia kilku różnorodnych projektów, opisano przy tym krok po kroku wszystkie istotne etapy procesu rozwijania i wdrażania aplikacji bloga, serwisu społecznościowego, aplikacji e-commerce i platformy e-learningowej. Dowiesz się też, jak pomyślnie zastosować w swoich projektach takie technologie jak PostgreSQL, Redis, Celery, RabbitMQ i Memcached. Lektura przygotuje Cię do tego, co najistotniejsze podczas pracy z Django: budowania od podstaw poprawnie działających aplikacji. Jeśli programujesz w Pythonie i znasz przynajmniej w stopniu podstawowym HTML i JavaScript ... to propozycja dla Ciebie.
W książce:
- podstawy Django, w tym modele, ORM, widoki, szablony, adresy URL, formularze, uwierzytelnianie, sygnały i oprogramowanie middleware
- integracja projektu aplikacji Django z zewnętrznym oprogramowaniem
- tworzenie aplikacji asynchronicznych (ASGI)
- konfiguracja środowiska produkcyjnego
- tworzenie złożonych aplikacji webowych i rozwiązywanie praktycznych problemów
Django: wypróbowany framework dla perfekcjonistów z napiętymi terminami!
Spis treści
O autorze
O recenzentach
Słowo wstępne
Przedmowa
ROZDZIAŁ 1. Utworzenie aplikacji bloga
- Instalacja Pythona
- Tworzenie środowiska wirtualnego w Pythonie
- Instalacja Django
- Instalowanie Django za pomocą pip
- Nowe funkcjonalności w Django 4
- Ogólne informacje na temat frameworka Django
- Główne komponenty frameworka
- Architektura Django
- 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
- Praca z obiektami QuerySet i menedżerami
- Tworzenie obiektów
- Aktualizowanie obiektów
- Pobieranie obiektów
- Usuwanie obiektów
- Kiedy następuje określenie zawartości kolekcji 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ź
- Zasoby dodatkowe
- Podsumowanie
ROZDZIAŁ 2. Usprawnienie bloga za pomocą funkcji zaawansowanych
- 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
- Tworzenie 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
- Wysyłanie wiadomości e-mail w widokach
- Renderowanie formularzy w szablonach
- Utworzenie systemu komentarzy
- Tworzenie modelu komentarzy
- Dodawanie modeli do witryny administracyjnej
- Utworzenie formularza na podstawie modelu
- Obsługa klasy ModelForm w widoku
- Tworzenie szablonów formularza komentarza
- Dodawanie komentarzy do widoku szczegółów posta
- Dodawanie komentarzy do szablonu szczegółów posta
- Dodatkowe zasoby
- Podsumowanie
ROZDZIAŁ 3. Rozbudowa aplikacji bloga
- Dodanie funkcjonalności tagów
- Pobieranie podobnych postów
- 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 PostgreSQL
- Utworzenie bazy danych 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
- Dodatkowe zasoby
- Podsumowanie
ROZDZIAŁ 4. Utworzenie witryny społecznościowej
- 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 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 profilu
- Użycie frameworka messages
- Implementacja własnego backendu uwierzytelniania
- Uniemożliwianie użytkownikom korzystania z istniejącego adresu e-mail
- Dodatkowe zasoby
- Podsumowanie
ROZDZIAŁ 5. Implementacja uwierzytelniania za pomocą witryn społecznościowych
- Dodanie do witryny uwierzytelnienia za pomocą innej witryny społecznościowej
- Uruchomienie serwera programistycznego za pośrednictwem HTTPS
- Uwierzytelnienie za pomocą serwisu Facebook
- Uwierzytelnienie za pomocą serwisu Twitter
- Uwierzytelnienie za pomocą serwisu Google
- Tworzenie profili dla użytkowników rejestrujących się za pomocą uwierzytelniania społecznościowego
- Dodatkowe zasoby
- Podsumowanie
ROZDZIAŁ 6. Udostępnianie treści w witrynie internetowej
- 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
- Dodatkowe zasoby
- Podsumowanie
ROZDZIAŁ 7. Śledzenie działań użytkownika
- Utworzenie systemu obserwacji
- Utworzenie relacji typu "wiele do wielu" za pomocą modelu pośredniego
- Utworzenie widoków listy i szczegółowego dla profilu użytkownika
- Dodanie działań obserwowania i rezygnacji z obserwowania użytkownika za pomocą JavaScript
- Budowa aplikacji z ogólnym strumieniem aktywności
- 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 Dockera
- Instalacja bazy danych Redis
- Użycie bazy danych Redis z Pythonem
- Przechowywanie różnych elementów widoków w bazie danych Redis
- Przechowywanie rankingu w bazie danych Redis
- Kolejne kroki z bazą danych Redis
- Dodatkowe zasoby
- Podsumowanie
ROZDZIAŁ 8. Utworzenie sklepu internetowego
- 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 sesji 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 w witrynie administracyjnej
- Utworzenie zamówień klienta
- Zadania asynchroniczne
- Wykorzystywanie zadań asynchronicznych
- Wątki robocze, kolejki komunikatów i brokery komunikatów
- Dodatkowe zasoby
- Podsumowanie
ROZDZIAŁ 9. Zarządzanie płatnościami i zamówieniami
- Integracja bramki płatności
- Tworzenie konta Stripe
- Instalowanie biblioteki Pythona do 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
- Generowanie pliku w formacie PDF
- Wysyłanie dokumentów PDF za pomocą poczty elektronicznej
- Dodatkowe zasoby
- Podsumowanie
ROZDZIAŁ 10. Rozbudowa sklepu internetowego
- 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 produktu
- Rekomendacja produktu na podstawie wcześniejszych transakcji
- Dodatkowe zasoby
- Podsumowanie
ROZDZIAŁ 11. Internacjonalizacja sklepu internetowego
- 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łumaczeniu
- Tłumaczenie własnego kodu
- Tłumaczenie szablonów
- Znacznik szablonu {% trans %}
- Znacznik szablonu {% blocktrans %}
- Tłumaczenie szablonów sklepu internetowego
- Użycie interfejsu do tłumaczeń o nazwie Rosetta
- Opcja fuzzy
- 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
- Używanie tłumaczeń z mechanizmem ORM
- Adaptacja widoków dla tłumaczeń
- Format lokalizacji
- Użycie modułu django-localflavor do weryfikacji pól formularza
- Dodatkowe zasoby
- Podsumowanie
ROZDZIAŁ 12. Budowa platformy e-learningu
- 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 modelu
- Utworzenie modeli treści
- Utworzenie własnych kolumn modelu
- Dodawanie porządkowania do modułów i obiektów treści
- Dodanie widoków uwierzytelniania
- Dodanie systemu uwierzytelniania
- Utworzenie szablonów uwierzytelniania
- Dodatkowe zasoby
- Podsumowanie
ROZDZIAŁ 13. Tworzenie systemu zarządzania treś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
- Dodatkowe zasoby
- Podsumowanie
ROZDZIAŁ 14. Renderowanie i buforowanie treści
- Wyświetlanie kursów
- Dodanie rejestracji uczestnika
- Utworzenie widoku rejestracji uczestnika
- Zapisanie się na kurs
- Uzyskanie dostępu do treści kursu
- Renderowanie różnych rodzajów treści
- Użycie frameworka buforowania
- Dostępne mechanizmy buforowania
- Instalacja Memcached
- Instalowanie obrazu Dockera 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
- Buforowanie fragmentów szablonu
- Buforowanie widoków
- Mechanizm buforowania bazy danych Redis
- Monitorowanie bazy danych Redis za pomocą Django Redisboard
- Dodatkowe zasoby
- Podsumowanie
ROZDZIAŁ 15. Utworzenie API
- 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
- Opracowanie zagnieżdżonych serializatorów
- Tworzenie własnych widoków API
- Obsługa uwierzytelniania
- Określenie uprawnień do widoków
- Utworzenie kolekcji ViewSet i routerów
- Dołączanie dodatkowych operacji do kolekcji ViewSet
- Tworzenie niestandardowych uprawnień
- Serializacja treści kursu
- Wykorzystanie API RESTful
- Dodatkowe zasoby
- Podsumowanie
ROZDZIAŁ 16. Budowanie serwera czatu
- Utworzenie aplikacji czatu
- Implementacja widoku pokoju czatu
- Obsługa czasu rzeczywistego w Django za pomocą frameworka Channels
- Aplikacje asynchroniczne z wykorzystaniem ASGI
- Cykl żądanie-odpowiedź z wykorzystaniem frameworka Channels
- Instalacja frameworka Channels
- 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
- Integracja aplikacji czatu z istniejącymi widokami
- Dodatkowe zasoby
- Podsumowanie
ROZDZIAŁ 17. Wdrożenie
- Tworzenie środowiska produkcyjnego
- Zarządzanie ustawieniami dla wielu środowisk
- Korzystanie z systemu Docker Compose
- Korzystanie z systemu Docker Compose
- 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
- Wykorzystanie serwera Daphne 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
- Dodatkowe zasoby
- Podsumowanie
Kategoria: | Programowanie |
Zabezpieczenie: |
Watermark
|
ISBN: | 978-83-8322-371-1 |
Rozmiar pliku: | 18 MB |