Деталі електронної книги

Django 2. Praktyczne tworzenie aplikacji sieciowych. Wydanie II

Django 2. Praktyczne tworzenie aplikacji sieciowych. Wydanie II

Antonio Mele

Eлектронна книга

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

  • Назва: Django 2. Praktyczne tworzenie aplikacji sieciowych. Wydanie II
  • Автор: Antonio Mele
  • Оригінальна назва: Django 2 by Example: Build powerful and reliable Python web applications from scratch
  • Переклад: Radosław Meryk
  • ISBN: 978-83-283-5552-1, 9788328355521
  • Дата видання: 2019-06-11
  • Формат: Eлектронна книга
  • Ідентифікатор видання: djpta2
  • Видавець: Helion