Szczegóły ebooka

Django 3. Praktyczne tworzenie aplikacji sieciowych. Wydanie III

Django 3. Praktyczne tworzenie aplikacji sieciowych. Wydanie III

Antonio Melé

Ebook

Twórz od podstaw rozbudowane i niezawodne aplikacje webowe w Pythonie

Django jest potężnym frameworkiem służącym do tworzenia aplikacji internetowych w Pythonie. Pozwala na pełne wykorzystywanie zalet tego języka, takich jak przejrzystość, elastyczność, wszechstronność i łatwość uczenia się. Wykorzystywanie Django do budowania aplikacji w Pythonie jest atrakcyjną możliwością zarówno dla początkujących, jak i zaawansowanych programistów. Aby jednak zapewnić tworzonym projektom odpowiednią, profesjonalną jakość, trzeba się nauczyć rozwiązywać problemy powstające podczas tworzenia aplikacji internetowych, stosować najlepsze praktyki programistyczne, a także skutecznie wdrażać i testować aplikację.

To trzecie wydanie praktycznego przewodnika po budowie aplikacji internetowych. Krok po kroku opisano w nim wszystkie istotne elementy procesu projektowania i wdrażania aplikacji: bloga, witryny społecznościowej, sklepu internetowego oraz platformy e-learningowej. Zawarte tu szczegółowe wskazówki pomogą integrować popularne technologie, usprawniać aplikacje z wykorzystaniem technik AJAX, tworzyć API REST oraz konfigurować środowisko produkcyjne dla projektów Django. Dzięki tej książce niepostrzeżenie opanujesz najistotniejsze zasady pracy w Django - i czym prędzej zaczniesz od podstaw budować praktyczne projekty. Nowością w tym wydaniu jest rozdział poświęcony projektowaniu serwera czatu z wykorzystaniem serwera Django Channels.

W tej książce:

  • praktyczna strona projektowania aplikacji internetowych
  • podstawy Django, w tym ORM, szablony, adresy URL, formularze i uwierzytelnianie
  • funkcje zaawansowane: niestandardowe pola modelu i oprogramowanie pośredniczące
  • wykorzystanie technik AJAX, system płatności, CMS, API RESTful
  • integracja projektu z takimi technologiami jak Redis, RabbitMQ, PostgreSQL i Channels
  • wdrażanie projektów Django za pomocą NGINX, uWSGI i Daphne

Django - wypróbowany framework dla profesjonalnych projektantów!

 

O autorze 12

 

O recenzentach 13

Przedmowa 15

Rozdział 1. Utworzenie aplikacji bloga 21

  • Instalacja Django 22
    • Utworzenie odizolowanego środowiska Pythona 23
    • Instalowanie Django za pomocą pip 23
  • Tworzenie pierwszego projektu 24
    • Uruchamianie serwera programistycznego 25
    • Ustawienia projektu 27
    • Projekty i aplikacje 28
    • Utworzenie aplikacji 28
  • Projekt schematu danych dla bloga 30
    • Aktywacja aplikacji 32
    • Tworzenie i stosowanie migracji 32
  • Tworzenie witryny administracyjnej dla modeli 34
    • Tworzenie superużytkownika 34
    • Witryna administracyjna Django 34
    • Dodawanie modeli do witryny administracyjnej 35
    • Personalizacja sposobu wyświetlania modeli 37
  • Praca z obiektami QuerySet i menedżerami 39
    • Tworzenie obiektów 39
    • Aktualizowanie obiektów 40
    • Pobieranie obiektów 41
    • Usunięcie obiektu 42
    • Kiedy następuje określenie zawartości kolekcji QuerySet? 42
    • Utworzenie menedżerów modelu 42
  • Przygotowanie widoków listy i szczegółów 44
    • Utworzenie widoków listy i szczegółów 44
    • Dodanie wzorców adresów URL do widoków 45
    • Kanoniczne adresy URL dla modeli 47
  • Utworzenie szablonów dla widoków 47
  • Dodanie stronicowania 50
  • Użycie widoków opartych na klasach 52
  • Podsumowanie 54

Rozdział 2. Usprawnienie bloga za pomocą funkcji zaawansowanych 55

  • Współdzielenie postów przy użyciu wiadomości e-mail 56
    • Tworzenie formularzy w Django 56
    • Obsługa formularzy w widokach 57
    • Wysyłanie wiadomości e-mail w Django 59
    • Generowanie formularza w szablonie 61
  • Utworzenie systemu komentarzy 65
    • Budowanie modelu 65
    • Utworzenie formularza na podstawie modelu 67
    • Obsługa klasy ModelForm w widoku 67
    • Dodanie komentarzy do szablonu szczegółów posta 69
  • Dodanie funkcjonalności tagów 72
  • Pobieranie podobnych postów 77
  • Podsumowanie 80

Rozdział 3. Rozbudowa aplikacji bloga 81

  • Utworzenie własnych filtrów i znaczników szablonu 82
    • Utworzenie własnych znaczników szablonu 82
    • Utworzenie własnych filtrów szablonu 87
  • Dodanie mapy witryny 89
  • Utworzenie kanału wiadomości dla postów bloga 92
  • Dodanie do bloga wyszukiwania pełnotekstowego 95
    • Instalacja PostgreSQL 95
    • Proste wyszukiwania 96
    • Wyszukiwanie w wielu polach 97
    • Utworzenie widoku wyszukiwania 97
    • Stemming i ranking wyników 100
    • Wagi zapytań 101
    • Wyszukiwanie z podobieństwem trygramu 101
    • Inne silniki wyszukiwania pełnotekstowego 102
  • Podsumowanie 102

Rozdział 4. Utworzenie witryny społecznościowej 103

  • Utworzenie projektu witryny społecznościowej 104
    • Rozpoczęcie pracy nad aplikacją społecznościową 104
  • Użycie frameworka uwierzytelniania w Django 105
    • Utworzenie widoku logowania 106
    • Użycie widoków uwierzytelniania w Django 111
    • Widoki logowania i wylogowania 112
    • Widoki zmiany hasła 117
    • Widoki zerowania hasła 119
  • Rejestracja użytkownika i profile użytkownika 124
    • Rejestracja użytkownika 124
    • Rozbudowa modelu User 127
    • Użycie frameworka komunikatów 133
  • Implementacja własnego mechanizmu uwierzytelniania 135
  • Dodanie do witryny uwierzytelnienia za pomocą innej witryny społecznościowej 137
    • Uruchomienie serwera programistycznego za pośrednictwem HTTPS 139
    • Uwierzytelnienie za pomocą serwisu Facebook 140
    • Uwierzytelnienie za pomocą serwisu Twitter 145
    • Uwierzytelnienie za pomocą serwisu Google 148
  • Podsumowanie 153

Rozdział 5. Udostępnianie treści w witrynie internetowej 155

  • Utworzenie witryny internetowej do kolekcjonowania obrazów 156
    • Utworzenie modelu Image 156
    • Zdefiniowanie relacji typu "wiele do wielu" 158
    • Rejestracja modelu Image w witrynie administracyjnej 158
  • Umieszczanie treści pochodzącej z innych witryn internetowych 159
    • Usunięcie zawartości pól formularza 160
    • Nadpisanie metody save() egzemplarza ModelForm 160
    • Utworzenie bookmarkletu za pomocą jQuery 165
  • Utworzenie szczegółowego widoku obrazu 172
  • Utworzenie miniatury za pomocą easy-thumbnails 174
  • Dodanie akcji AJAX za pomocą jQuery 175
    • Wczytanie jQuery 176
    • CSRF w żądaniach AJAX 177
    • Wykonywanie żądań AJAX za pomocą jQuery 178
  • Utworzenie własnych dekoratorów dla widoków 182
  • Dodanie stronicowania AJAX do widoków listy 183
  • Podsumowanie 187

Rozdział 6. Śledzenie działań użytkownika 189

  • Utworzenie systemu obserwacji 189
    • Utworzenie relacji typu "wiele do wielu" za pomocą modelu pośredniego 190
    • Utworzenie widoków listy i szczegółowego dla profilu użytkownika 193
    • Utworzenie widoku AJAX pozwalającego na obserwację użytkowników 197
  • Budowa aplikacji z ogólnym strumieniem aktywności 199
    • Użycie frameworka contenttypes 200
    • Dodanie do modelu relacji generycznych 201
    • Uniknięcie powielonych akcji w strumieniu aktywności 203
    • Dodanie akcji użytkownika do strumienia aktywności 204
    • Wyświetlanie strumienia aktywności 205
    • Optymalizacja kolekcji QuerySet dotyczącej powiązanych obiektów 206
    • Tworzenie szablonów dla akcji 207
  • Użycie sygnałów dla denormalizowanych zliczeń 209
    • Praca z sygnałami 209
    • Definiowanie klas konfiguracyjnych aplikacji 211
  • Użycie bazy danych Redis do przechowywania różnych elementów widoków 213
    • Instalacja bazy danych Redis 214
    • Użycie bazy danych Redis z Pythonem 215
    • Przechowywanie różnych elementów widoków w bazie danych Redis 216
    • Przechowywanie rankingu w bazie danych Redis 217
    • Kolejne kroki z bazą danych Redis 220
  • Podsumowanie 220

Rozdział 7. Utworzenie sklepu internetowego 221

  • Utworzenie projektu sklepu internetowego 222
    • Utworzenie modeli katalogu produktów 223
    • Rejestracja modeli katalogu w witrynie administracyjnej 225
    • Utworzenie widoków katalogu 226
    • Utworzenie szablonów katalogu 228
  • Utworzenie koszyka na zakupy 232
    • Użycie sesji Django 232
    • Ustawienia sesji 233
    • Wygaśnięcie sesji 234
    • Przechowywanie koszyka na zakupy w sesji 234
    • Utworzenie widoków koszyka na zakupy 238
    • Utworzenie procesora kontekstu dla bieżącego koszyka na zakupy 245
  • Rejestracja zamówień klienta 247
    • Utworzenie modeli zamówienia 247
    • Dołączenie modeli zamówienia w witrynie administracyjnej 249
    • Utworzenie zamówień klienta 250
  • Wykonywanie zadań asynchronicznych za pomocą Celery 254
    • Instalacja Celery 254
    • Instalacja RabbitMQ 254
    • Dodanie Celery do projektu 255
    • Dodawanie do aplikacji zadań asynchronicznych 256
    • Monitorowanie Celery 258
  • Podsumowanie 258

Rozdział 8. Zarządzanie płatnościami i zamówieniami 259

  • Integracja bramki płatności 259
    • Tworzenie konta sandbox serwisu Braintree 260
    • Instalowanie modułu Pythona Braintree 261
    • Integracja bramki płatności 262
    • Testowanie płatności 269
    • Wdrożenie do produkcji 271
  • Eksport zamówień do plików CSV 271
    • Dodanie własnych akcji do witryny administracyjnej 272
  • Rozbudowa witryny administracyjnej za pomocą własnych widoków 274
  • Dynamiczne generowanie rachunków w formacie PDF 278
    • Instalacja WeasyPrint 278
    • Utworzenie szablonu PDF 279
    • Generowanie pliku w formacie PDF 280
    • Wysyłanie dokumentów PDF za pomocą wiadomości e-mail 282
  • Podsumowanie 285

Rozdział 9. Rozbudowa sklepu internetowego 287

  • Utworzenie systemu kuponów 287
    • Utworzenie modeli kuponu 288
    • Zastosowanie kuponu w koszyku na zakupy 290
    • Zastosowanie kuponu w zamówieniu 295
  • Internacjonalizacja i lokalizacja projektu 297
    • Internacjonalizacja za pomocą Django 298
    • Przygotowanie projektu do internacjonalizacji 300
    • Tłumaczenie kodu Pythona 301
    • Tłumaczenie szablonów 306
    • Użycie interfejsu do tłumaczeń o nazwie Rosetta 310
    • Opcja fuzzy 312
    • Wzorce adresów URL dla internacjonalizacji 313
    • Umożliwienie użytkownikowi zmiany języka 315
    • Tłumaczenie modeli za pomocą django-parler 316
    • Format lokalizacji 324
    • Użycie modułu django-localflavor do weryfikacji pól formularza 324
  • Utworzenie silnika rekomendacji produktu 326
    • Rekomendacja produktu na podstawie wcześniejszych transakcji 326
  • Podsumowanie 333

Rozdział 10. Budowa platformy e-learningu 335

  • Utworzenie platformy e-learningu 335
  • Utworzenie modeli kursu 336
    • Rejestracja modeli w witrynie administracyjnej 338
    • Użycie fikstur w celu dostarczenia początkowych danych dla modeli 339
  • Utworzenie modeli dla zróżnicowanej treści 341
    • Wykorzystanie dziedziczenia modelu 342
    • Utworzenie modeli treści 344
    • Utworzenie własnych kolumn modelu 346
    • Dodawanie porządkowania do modułów i obiektów treści 348
  • Utworzenie systemu zarządzania treścią 352
    • Dodanie systemu uwierzytelniania 352
    • Utworzenie szablonów uwierzytelniania 352
    • Utworzenie widoków opartych na klasach 355
    • Użycie domieszek w widokach opartych na klasach 355
    • Praca z grupami i uprawnieniami 358
  • Zarządzanie modułami kursu i treścią 364
    • Użycie zbiorów formularzy dla modułów kursów 364
    • Dodanie treści do modułów kursów 368
    • Zarządzanie modułami i treścią 373
    • Zmiana kolejności modułów i treści 377
  • Podsumowanie 380

Rozdział 11. Renderowanie i buforowanie treści 381

  • Wyświetlanie kursów 382
  • Dodanie rejestracji uczestnika 386
    • Utworzenie widoku rejestracji uczestnika 386
    • Zapisanie się na kurs 389
  • Uzyskanie dostępu do treści kursu 392
    • Generowanie różnych rodzajów treści 395
  • Użycie frameworka buforowania 398
    • Dostępne mechanizmy buforowania 398
    • Instalacja Memcached 399
    • Ustawienia bufora 400
    • Dodanie Memcached do projektu 400
    • Poziomy buforowania 401
    • Użycie niskopoziomowego API buforowania 402
    • Buforowanie fragmentów szablonu 405
    • Buforowanie widoków 406
  • Podsumowanie 407

Rozdział 12. Utworzenie API 409

  • Utworzenie API typu RESTful 410
    • Instalacja Django Rest Framework 410
    • Definiowanie serializacji 411
    • Klasy parserów i renderowania formatów 412
    • Utworzenie widoków listy i szczegółowego 413
    • Serializacja zagnieżdżona 415
    • Utworzenie własnych widoków 417
    • Obsługa uwierzytelniania 418
    • Określenie uprawnień do widoków 419
    • Utworzenie kolekcji widoku i routerów 420
    • Dołączenie dodatkowych akcji do kolekcji widoku 422
    • Tworzenie własnych uprawnień 423
    • Serializacja treści kursu 423
    • Wykorzystanie API RESTful 425
  • Podsumowanie 428

Rozdział 13. Budowanie serwera czatu 429

  • Utworzenie aplikacji czatu 429
    • Implementacja widoku pokoju czatu 430
    • Dezaktywacja buforowania na poziomie witryny 432
  • Obsługa czasu rzeczywistego w Django za pomocą frameworka Channels 433
    • Aplikacje asynchroniczne z wykorzystaniem ASGI 433
    • Cykl żądanie-odpowiedź z wykorzystaniem frameworka Channels 434
  • Instalacja frameworka Channels 436
  • Pisanie konsumenta 438
  • Routing 439
  • Implementacja klienta WebSocket 440
  • Warstwa kanału komunikacyjnego 445
    • Kanały komunikacyjne i grupy 446
    • Konfiguracja warstwy kanału komunikacyjnego z wykorzystaniem Redis 446
    • Aktualizacja konsumenta w celu rozgłaszania wiadomości 447
    • Dodawanie kontekstu do wiadomości 451
  • Modyfikacja konsumenta w celu uzyskania pełnej asynchroniczności 454
  • Integracja aplikacji czatu z istniejącymi widokami 456
  • Podsumowanie 457

Rozdział 14. Wdrożenie 459

    • Zarządzanie ustawieniami dla wielu środowisk 460
    • Instalacja PostgreSQL 462
    • Sprawdzenie projektu 463
    • Udostępnianie Django za pomocą WSGI 463
    • Instalacja uWSGI 463
    • Konfiguracja uWSGI 464
    • Instalacja NGINX 467
    • Środowisko produkcyjne 468
    • Konfiguracja Nginx 468
    • Udostępnianie zasobów statycznych i multimedialnych 470
    • Zabezpieczanie połączeń za pomocą SSL/TLS 473
    • Wykorzystanie serwera Daphne z frameworkiem Django Channels 477
    • Wykorzystanie bezpiecznych połączeń dla gniazd WebSocket 478
    • Uwzględnienie Daphne w konfiguracji NGINX 478
    • Utworzenie własnego oprogramowania pośredniczącego 481
  • Implementacja własnych poleceń administracyjnych 484
    Podsumowanie 487
  • Tytuł: Django 3. Praktyczne tworzenie aplikacji sieciowych. Wydanie III
  • Autor: Antonio Melé
  • Tytuł oryginału: Django 3 By Example: Build powerful and reliable Python web applications from scratch, 3rd Edition
  • Tłumaczenie: Radosław Meryk, Robert Górczyński
  • ISBN: 978-83-283-7251-1, 9788328372511
  • Data wydania: 2021-02-23
  • Format: Ebook
  • Identyfikator pozycji: dj3pt3
  • Wydawca: Helion