Django 3. Praktyczne tworzenie aplikacji sieciowych. Wydanie III - Helion
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-7250-4
stron: 488, Format: 168x237, okładka: miękka
Data wydania: 2021-02-23
Księgarnia: Helion
Cena książki: 53,40 zł (poprzednio: 89,00 zł)
Oszczędzasz: 40% (-35,60 zł)
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!
Osoby które kupowały "Django 3. Praktyczne tworzenie aplikacji sieciowych. Wydanie III", wybierały także:
- GraphQL. Kurs video. Buduj nowoczesne API w Pythonie 169,00 zł, (50,70 zł -70%)
- Receptura na Python. Kurs Video. 54 praktyczne porady dla programist 199,00 zł, (59,70 zł -70%)
- Podstawy Pythona z Minecraftem. Kurs video. Piszemy pierwsze skrypty 149,00 zł, (44,70 zł -70%)
- Twórz gry w Pythonie. Kurs video. Poznaj bibliotekę PyGame 249,00 zł, (74,70 zł -70%)
- Data Science w Pythonie. Kurs video. Algorytmy uczenia maszynowego 199,00 zł, (59,70 zł -70%)
Spis treści
Django 3. Praktyczne tworzenie aplikacji sieciowych. Wydanie III -- spis treści
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