Details zum E-Book

Django 4. Praktyczne tworzenie aplikacji sieciowych. Wydanie IV

Django 4. Praktyczne tworzenie aplikacji sieciowych. Wydanie IV

Antonio Melé

E-book

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!

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
  • Titel: Django 4. Praktyczne tworzenie aplikacji sieciowych. Wydanie IV
  • Autor: Antonio Melé
  • Originaler Titel: Django 4 By Example: Build powerful and reliable Python web applications from scratch, 4th Edition
  • Übersetzung: Radosław Meryk
  • ISBN: 978-83-8322-371-1, 9788383223711
  • Veröffentlichungsdatum: 2023-08-08
  • Format: E-book
  • Artikelkennung: djan44
  • Verleger: Helion