E-book details

Django 2. Praktyczne tworzenie aplikacji sieciowych. Wydanie II

Django 2. Praktyczne tworzenie aplikacji sieciowych. Wydanie II

Antonio Mele

Ebook

Django jest frameworkiem do budowy profesjonalnych aplikacji sieciowych w języku Python. Cieszy się zasłużoną opinią potężnego narzędzia, którego można się szybko nauczyć. Spodoba się każdemu, kto ceni prostotę użytkowania i pragmatyczne podejście do projektowania. Z pewnością Django jest atrakcyjnym rozwiązaniem dla programistów, którzy profesjonalnie podchodzą do tworzenia aplikacji WWW i stawiają na niezawodność.

To drugie, zaktualizowane i uzupełnione wydanie cenionego podręcznika pisania aplikacji sieciowych w Django. Krok po kroku pokazano w nim pełny proces tworzenia oprogramowania, od pierwszych linii kodu po wdrożenie, z akcentem na praktyczną stronę pracy dewelopera. Nie tylko zaprezentowano technikę pracy z frameworkiem, ale też opisano zasady integrowania innych popularnych technologii z projektami Django. Książka pozwala również zapoznać się z metodami rozwiązywania typowych problemów z implementacją, a także - w sposób naturalny, niejako mimochodem - nauczyć się najlepszych praktyk programistycznych z wykorzystaniem łatwych do powielenia procedur.

Najważniejsze zagadnienia omówione w książce:

  • wprowadzenie do frameworka i tworzenie praktycznego projektu aplikacji
  • implementacja zaawansowanych funkcji aplikacji sieciowych
  • tworzenie modelu użytkownika i zintegrowane uwierzytelnianie
  • praca z innymi technologiami, w tym zarządzanie płatnościami
  • tłumaczenie aplikacji na wiele języków
  • API typu RESTful

Django - dla tych, którzy chcą mieć świetne wyniki!

 

O autorze 11

 

O recenzentach 12

Przedmowa 13

Rozdział 1. Utworzenie aplikacji bloga 17

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

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

  • Współdzielenie postów przy użyciu wiadomości e-mail 49
    • Tworzenie formularzy w Django 50
    • Obsługa formularzy w widokach 51
    • Wysyłanie wiadomości e-mail w Django 52
    • Generowanie formularza w szablonie 55
  • Utworzenie systemu komentarzy 58
    • Utworzenie formularza na podstawie modelu 60
    • Obsługa klasy ModelForm w widoku 60
    • Dodanie komentarzy do szablonu szczegółów posta 62
  • Dodanie funkcjonalności tagów 65
  • Pobieranie podobnych postów 70
  • Podsumowanie 72

Rozdział 3. Rozbudowa aplikacji bloga 75

  • Utworzenie własnych filtrów i znaczników szablonu 75
    • Utworzenie własnych znaczników szablonu 76
    • Utworzenie własnych filtrów szablonu 80
  • Dodanie mapy witryny 82
  • Utworzenie kanału wiadomości dla postów bloga 85
  • Dodanie do bloga wyszukiwania pełnotekstowego 87
    • Instalacja PostgreSQL 88
    • Proste wyszukiwania 89
    • Wyszukiwanie w wielu polach 90
    • Utworzenie widoku wyszukiwania 90
    • Stemming i ranking wyników 92
    • Wagi zapytań 93
    • Wyszukiwanie z podobieństwem trygramu 94
    • Inne silniki wyszukiwania pełnotekstowego 95
  • Podsumowanie 95

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

  • Utworzenie projektu witryny społecznościowej 97
    • Rozpoczęcie pracy nad aplikacją społecznościową 98
  • Użycie frameworka uwierzytelniania w Django 99
    • Utworzenie widoku logowania 100
    • Użycie widoków uwierzytelniania w Django 105
    • Widoki logowania i wylogowania 105
    • Widoki zmiany hasła 110
    • Widoki zerowania hasła 112
  • Rejestracja użytkownika i profile użytkownika 117
    • Rejestracja użytkownika 117
    • Rozbudowa modelu User 120
    • Użycie własnego modelu User 126
    • Użycie frameworka komunikatów 126
  • Implementacja własnego mechanizmu uwierzytelniania 128
  • Dodanie do witryny uwierzytelnienia za pomocą innej witryny społecznościowej 130
    • Uwierzytelnienie za pomocą serwisu Facebook 132
    • Uwierzytelnienie za pomocą serwisu Twitter 136
    • Uwierzytelnienie za pomocą serwisu Google 138
  • Podsumowanie 142

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

  • Utworzenie witryny internetowej do kolekcjonowania obrazów 144
    • Utworzenie modelu Image 144
    • Zdefiniowanie relacji typu "wiele do wielu" 146
    • Rejestracja modelu Image w witrynie administracyjnej 146
  • Umieszczanie treści pochodzącej z innych witryn internetowych 147
    • Usunięcie zawartości pól formularza 148
    • Nadpisanie metody save() egzemplarza ModelForm 148
    • Utworzenie bookmarkletu za pomocą jQuery 152
  • Utworzenie widoku szczegółowego obrazu 160
  • Utworzenie miniatury za pomocą sorl-thumbnail 162
  • Dodanie akcji AJAX za pomocą jQuery 163
    • Wczytanie jQuery 165
    • CSRF w żądaniach AJAX 166
    • Wykonywanie żądań AJAX za pomocą jQuery 167
  • Utworzenie własnego dekoratora dla widoków 170
  • Dodanie stronicowania AJAX do widoków listy 171
  • Podsumowanie 175

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

  • Utworzenie systemu obserwacji 177
    • Utworzenie relacji typu "wiele do wielu" za pomocą modelu pośredniego 178
    • Utworzenie widoków listy i szczegółowego dla profilu użytkownika 181
    • Utworzenie widoku AJAX pozwalającego na obserwację użytkowników 184
  • Budowa ogólnego strumienia aktywności aplikacji 187
    • Użycie frameworka contenttypes 188
    • Dodanie do modelu relacji generycznych 189
    • Uniknięcie powielonych akcji w strumieniu aktywności 192
    • Dodanie akcji użytkownika do strumienia aktywności 193
    • Wyświetlanie strumienia aktywności 194
    • Optymalizacja kolekcji QuerySet dotyczącej powiązanych obiektów 194
    • Tworzenie szablonów dla akcji 196
  • Użycie sygnałów dla denormalizowanych zliczeń 197
    • Praca z sygnałami 198
    • Definiowanie klas konfiguracyjnych aplikacji 200
  • Użycie bazy danych Redis do przechowywania różnych elementów widoków 202
    • Instalacja bazy danych Redis 202
    • Użycie bazy danych Redis z Pythonem 204
    • Przechowywanie różnych elementów widoków w bazie danych Redis 205
    • Przechowywanie rankingu w bazie danych Redis 206
    • Kolejne kroki z bazą danych Redis 208
  • Podsumowanie 209

Rozdział 7. Utworzenie sklepu internetowego 211

  • Utworzenie projektu sklepu internetowego 211
    • Utworzenie modeli katalogu produktów 212
    • Rejestracja modeli katalogu w witrynie administracyjnej 214
    • Utworzenie widoków katalogu 215
    • Utworzenie szablonów katalogu 217
  • Utworzenie koszyka na zakupy 221
    • Użycie sesji Django 222
    • Ustawienia sesji 223
    • Wygaśnięcie sesji 224
    • Przechowywanie koszyka na zakupy w sesji 224
    • Utworzenie widoków koszyka na zakupy 228
    • Utworzenie procesora kontekstu dla bieżącego koszyka na zakupy 234
  • Rejestracja zamówień klienta 237
    • Utworzenie modeli zamówienia 237
    • Dołączenie modeli zamówienia w witrynie administracyjnej 239
    • Utworzenie zamówień klienta 240
  • Wykonywanie zadań asynchronicznych za pomocą Celery 244
    • Instalacja Celery 244
    • Instalacja RabbitMQ 244
    • Dodanie Celery do projektu 245
    • Dodawanie do aplikacji zadań asynchronicznych 246
    • Monitorowanie Celery 248
  • Podsumowanie 248

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

  • Integracja bramki płatności 249
    • Tworzenie konta sandbox serwisu Braintree 250
    • Instalowanie modułu Pythona Braintree 251
    • Integracja bramki płatności 252
    • Testowanie płatności 259
    • Wdrożenie do produkcji 261
  • Eksport zamówienia do pliku CSV 261
    • Dodanie własnych akcji do witryny administracyjnej 262
  • Rozbudowa witryny administracyjnej za pomocą własnych widoków 264
  • Dynamiczne generowanie rachunków w formacie PDF 268
    • Instalacja WeasyPrint 269
    • Utworzenie szablonu PDF 269
    • Generowanie pliku w formacie PDF 270
    • Wysyłanie dokumentów PDF za pomocą wiadomości e-mail 273
  • Podsumowanie 274

Rozdział 9. Rozbudowa sklepu internetowego 275

  • Utworzenie systemu kuponów 275
    • Utworzenie modeli kuponu 276
    • Zastosowanie kuponu w koszyku na zakupy 278
    • Zastosowanie kuponu w zamówieniu 283
  • Internacjonalizacja i lokalizacja projektu 285
    • Internacjonalizacja za pomocą Django 286
    • Przygotowanie projektu do internacjonalizacji 288
    • Tłumaczenie kodu Pythona 289
    • Tłumaczenie szablonów 295
    • Użycie interfejsu do tłumaczeń o nazwie Rosetta 298
    • Opcja fuzzy 301
    • Wzorce adresów URL dla internacjonalizacji 301
    • Umożliwienie użytkownikowi zmiany języka 303
    • Tłumaczenie modeli za pomocą django-parler 305
    • Format lokalizacji 312
    • Użycie modułu django-localflavor do weryfikacji pól formularza 313
  • Utworzenie silnika rekomendacji produktu 314
    • Rekomendacja produktu na podstawie wcześniejszych transakcji 314
  • Podsumowanie 321

Rozdział 10. Budowa platformy e-learningu 323

  • Utworzenie platformy e-learningu 323
  • Utworzenie modeli kursu 324
    • Rejestracja modeli w witrynie administracyjnej 326
    • Użycie fikstur w celu dostarczenia początkowych danych dla modeli 327
  • Utworzenie modeli dla zróżnicowanej treści 329
    • Wykorzystanie dziedziczenia modelu 330
    • Utworzenie modeli treści 332
    • Utworzenie własnych kolumn modelu 334
    • Dodawanie porządkowania do modułów i obiektów treści 336
  • Utworzenie systemu zarządzania treścią 340
    • Dodanie systemu uwierzytelniania 340
    • Utworzenie szablonów uwierzytelniania 341
    • Utworzenie widoków opartych na klasach 343
    • Użycie domieszek w widokach opartych na klasach 344
    • Praca z grupami i uprawnieniami 346
  • Zarządzanie modułami kursu i treścią 352
    • Użycie zbioru formularzy 352
    • Dodanie treści do modułów kursów 356
    • Zarządzanie modułami i treścią 361
    • Zmiana kolejności modułów i treści 365
  • Podsumowanie 368

Rozdział 11. Renderowanie i buforowanie treści 369

  • Wyświetlanie kursów 369
  • Dodanie rejestracji uczestnika 374
    • Utworzenie widoku rejestracji uczestnika 374
    • Zapisanie się na kurs 376
  • Uzyskanie dostępu do treści kursu 379
    • Generowanie różnych rodzajów treści 383
  • Użycie frameworka buforowania 385
    • Dostępne mechanizmy buforowania 386
    • Instalacja Memcached 387
    • Ustawienia bufora 387
    • Dodanie Memcached do projektu 388
    • Poziomy buforowania 389
    • Użycie niskopoziomowego API buforowania 389
    • Buforowanie fragmentów szablonu 393
    • Buforowanie widoków 394
  • Podsumowanie 395

Rozdział 12. Utworzenie API 397

  • Utworzenie API typu RESTful 397
    • Instalacja Django Rest Framework 398
    • Definiowanie serializacji 399
    • Klasy parserów i renderowania formatów 400
    • Utworzenie widoków listy i szczegółowego 401
    • Serializacja zagnieżdżona 403
    • Utworzenie własnych widoków 404
    • Obsługa uwierzytelnienia 405
    • Określenie uprawnień do widoków 406
    • Utworzenie kolekcji widoku i routerów 408
    • Dołączenie dodatkowych akcji do kolekcji widoku 409
    • Tworzenie własnych uprawnień 410
    • Serializacja treści kursu 410
  • Podsumowanie 413

Rozdział 13. Wdrożenie 415

  • Wdrożenie w środowisku produkcyjnym 415
    • Zarządzanie ustawieniami dla wielu środowisk 415
    • Instalacja PostgreSQL 418
    • Sprawdzenie projektu 419
    • Udostępnianie Django za pomocą WSGI 419
    • Instalacja uWSGI 419
    • Konfiguracja uWSGI 420
    • Instalacja Nginx 422
    • Środowisko produkcyjne 422
    • Konfiguracja Nginx 423
    • Udostępnianie zasobów statycznych i multimedialnych 424
    • Ochrona połączeń za pomocą SSL 425
  • Utworzenie własnego oprogramowania pośredniczącego 428
    • Utworzenie oprogramowania pośredniczącego do obsługi subdomeny 429
    • Obsługa wielu subdomen za pomocą Nginx 430
  • Implementacja własnych poleceń administracyjnych 431
  • Podsumowanie 434

Skorowidz 435

  • Title: Django 2. Praktyczne tworzenie aplikacji sieciowych. Wydanie II
  • Author: Antonio Mele
  • Original title: Django 2 by Example: Build powerful and reliable Python web applications from scratch
  • Translation: Radosław Meryk
  • ISBN: 978-83-283-5552-1, 9788328355521
  • Date of issue: 2019-06-11
  • Format: Ebook
  • Item ID: djpta2
  • Publisher: Helion