Django 2. Praktyczne tworzenie aplikacji sieciowych. Wydanie II - ebook
Django 2. Praktyczne tworzenie aplikacji sieciowych. Wydanie II - 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!
Spis treści
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
Kategoria: | Programowanie |
Zabezpieczenie: |
Watermark
|
ISBN: | 978-83-283-5552-1 |
Rozmiar pliku: | 12 MB |