Opis
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 aplikacjiimplementacja zaawansowanych funkcji aplikacji sieciowychtworzenie modelu użytkownika i zintegrowane uwierzytelnianiepraca z innymi technologiami, w tym zarządzanie płatnościamitłumaczenie aplikacji na wiele językówAPI typu RESTfulDjango – dla tych, którzy chcą mieć świetne wyniki!Spis treści:O autorze 11O recenzentach 12Przedmowa 13Rozdział 1. Utworzenie aplikacji bloga 17Instalacja Django 17Utworzenie odizolowanego środowiska Pythona 18Instalowanie Django za pomocą pip 19Tworzenie pierwszego projektu 20Uruchamianie serwera programistycznego 21Ustawienia projektu 23Projekty i aplikacje 24Utworzenie aplikacji 24Projekt schematu danych dla bloga 25Aktywacja aplikacji 27Tworzenie i stosowanie migracji 27Tworzenie witryny administracyjnej dla modeli 29Tworzenie superużytkownika 29Witryna administracyjna Django 29Dodawanie modeli do witryny administracyjnej 30Personalizacja sposobu wyświetlania modeli 32Praca z obiektami QuerySet i menedżerami 34Tworzenie obiektów 34Aktualizowanie obiektów 35Pobieranie obiektów 35Usunięcie obiektu 37Kiedy następuje określenie zawartości kolekcji QuerySet? 37Utworzenie menedżerów modelu 37Przygotowanie widoków listy i szczegółów 38Utworzenie widoków listy i szczegółów 38Dodanie wzorców adresów URL do widoków 39Kanoniczne adresy URL dla modeli 41Utworzenie szablonów dla widoków 41Dodanie stronicowania 45Użycie widoków opartych na klasach 47Podsumowanie 48Rozdział 2. Usprawnienie bloga za pomocą funkcji zaawansowanych 49Współdzielenie postów przy użyciu wiadomości e-mail 49Tworzenie formularzy w Django 50Obsługa formularzy w widokach 51Wysyłanie wiadomości e-mail w Django 52Generowanie formularza w szablonie 55Utworzenie systemu komentarzy 58Utworzenie formularza na podstawie modelu 60Obsługa klasy ModelForm w widoku 60Dodanie komentarzy do szablonu szczegółów posta 62Dodanie funkcjonalności tagów 65Pobieranie podobnych postów 70Podsumowanie 72Rozdział 3. Rozbudowa aplikacji bloga 75Utworzenie własnych filtrów i znaczników szablonu 75Utworzenie własnych znaczników szablonu 76Utworzenie własnych filtrów szablonu 80Dodanie mapy witryny 82Utworzenie kanału wiadomości dla postów bloga 85Dodanie do bloga wyszukiwania pełnotekstowego 87Instalacja PostgreSQL 88Proste wyszukiwania 89Wyszukiwanie w wielu polach 90Utworzenie widoku wyszukiwania 90Stemming i ranking wyników 92Wagi zapytań 93Wyszukiwanie z podobieństwem trygramu 94Inne silniki wyszukiwania pełnotekstowego 95Podsumowanie 95Rozdział 4. Utworzenie witryny społecznościowej 97Utworzenie projektu witryny społecznościowej 97Rozpoczęcie pracy nad aplikacją społecznościową 98Użycie frameworka uwierzytelniania w Django 99Utworzenie widoku logowania 100Użycie widoków uwierzytelniania w Django 105Widoki logowania i wylogowania 105Widoki zmiany hasła 110Widoki zerowania hasła 112Rejestracja użytkownika i profile użytkownika 117Rejestracja użytkownika 117Rozbudowa modelu User 120Użycie własnego modelu User 126Użycie frameworka komunikatów 126Implementacja własnego mechanizmu uwierzytelniania 128Dodanie do witryny uwierzytelnienia za pomocą innej witryny społecznościowej 130Uwierzytelnienie za pomocą serwisu Facebook 132Uwierzytelnienie za pomocą serwisu Twitter 136Uwierzytelnienie za pomocą serwisu Google 138Podsumowanie 142Rozdział 5. Udostępnianie treści w witrynie internetowej 143Utworzenie witryny internetowej do kolekcjonowania obrazów 144Utworzenie modelu Image 144Zdefiniowanie relacji typu „wiele do wielu” 146Rejestracja modelu Image w witrynie administracyjnej 146Umieszczanie treści pochodzącej z innych witryn internetowych 147Usunięcie zawartości pól formularza 148Nadpisanie metody save() egzemplarza ModelForm 148Utworzenie bookmarkletu za pomocą jQuery 152Utworzenie widoku szczegółowego obrazu 160Utworzenie miniatury za pomocą sorl-thumbnail 162Dodanie akcji AJAX za pomocą jQuery 163Wczytanie jQuery 165CSRF w żądaniach AJAX 166Wykonywanie żądań AJAX za pomocą jQuery 167Utworzenie własnego dekoratora dla widoków 170Dodanie stronicowania AJAX do widoków listy 171Podsumowanie 175Rozdział 6. Śledzenie działań użytkownika 177Utworzenie systemu obserwacji 177Utworzenie relacji typu „wiele do wielu” za pomocą modelu pośredniego 178Utworzenie widoków listy i szczegółowego dla profilu użytkownika 181Utworzenie widoku AJAX pozwalającego na obserwację użytkowników 184Budowa ogólnego strumienia aktywności aplikacji 187Użycie frameworka contenttypes 188Dodanie do modelu relacji generycznych 189Uniknięcie powielonych akcji w strumieniu aktywności 192Dodanie akcji użytkownika do strumienia aktywności 193Wyświetlanie strumienia aktywności 194Optymalizacja kolekcji QuerySet dotyczącej powiązanych obiektów 194Tworzenie szablonów dla akcji 196Użycie sygnałów dla denormalizowanych zliczeń 197Praca z sygnałami 198Definiowanie klas konfiguracyjnych aplikacji 200Użycie bazy danych Redis do przechowywania różnych elementów widoków 202Instalacja bazy danych Redis 202Użycie bazy danych Redis z Pythonem 204Przechowywanie różnych elementów widoków w bazie danych Redis 205Przechowywanie rankingu w bazie danych Redis 206Kolejne kroki z bazą danych Redis 208Podsumowanie 209Rozdział 7. Utworzenie sklepu internetowego 211Utworzenie projektu sklepu internetowego 211Utworzenie modeli katalogu produktów 212Rejestracja modeli katalogu w witrynie administracyjnej 214Utworzenie widoków katalogu 215Utworzenie szablonów katalogu 217Utworzenie koszyka na zakupy 221Użycie sesji Django 222Ustawienia sesji 223Wygaśnięcie sesji 224Przechowywanie koszyka na zakupy w sesji 224Utworzenie widoków koszyka na zakupy 228Utworzenie procesora kontekstu dla bieżącego koszyka na zakupy 234Rejestracja zamówień klienta 237Utworzenie modeli zamówienia 237Dołączenie modeli zamówienia w witrynie administracyjnej 239Utworzenie zamówień klienta 240Wykonywanie zadań asynchronicznych za pomocą Celery 244Instalacja Celery 244Instalacja RabbitMQ 244Dodanie Celery do projektu 245Dodawanie do aplikacji zadań asynchronicznych 246Monitorowanie Celery 248Podsumowanie 248Rozdział 8. Zarządzanie płatnościami i zamówieniami 249Integracja bramki płatności 249Tworzenie konta sandbox serwisu Braintree 250Instalowanie modułu Pythona Braintree 251Integracja bramki płatności 252Testowanie płatności 259Wdrożenie do produkcji 261Eksport zamówienia do pliku CSV 261Dodanie własnych akcji do witryny administracyjnej 262Rozbudowa witryny administracyjnej za pomocą własnych widoków 264Dynamiczne generowanie rachunków w formacie PDF 268Instalacja WeasyPrint 269Utworzenie szablonu PDF 269Generowanie pliku w formacie PDF 270Wysyłanie dokumentów PDF za pomocą wiadomości e-mail 273Podsumowanie 274Rozdział 9. Rozbudowa sklepu internetowego 275Utworzenie systemu kuponów 275Utworzenie modeli kuponu 276Zastosowanie kuponu w koszyku na zakupy 278Zastosowanie kuponu w zamówieniu 283Internacjonalizacja i lokalizacja projektu 285Internacjonalizacja za pomocą Django 286Przygotowanie projektu do internacjonalizacji 288Tłumaczenie kodu Pythona 289Tłumaczenie szablonów 295Użycie interfejsu do tłumaczeń o nazwie Rosetta 298Opcja fuzzy 301Wzorce adresów URL dla internacjonalizacji 301Umożliwienie użytkownikowi zmiany języka 303Tłumaczenie modeli za pomocą django-parler 305Format lokalizacji 312Użycie modułu django-localflavor do weryfikacji pól formularza 313Utworzenie silnika rekomendacji produktu 314Rekomendacja produktu na podstawie wcześniejszych transakcji 314Podsumowanie 321Rozdział 10. Budowa platformy e-learningu 323Utworzenie platformy e-learningu 323Utworzenie modeli kursu 324Rejestracja modeli w witrynie administracyjnej 326Użycie fikstur w celu dostarczenia początkowych danych dla modeli 327Utworzenie modeli dla zróżnicowanej treści 329Wykorzystanie dziedziczenia modelu 330Utworzenie modeli treści 332Utworzenie własnych kolumn modelu 334Dodawanie porządkowania do modułów i obiektów treści 336Utworzenie systemu zarządzania treścią 340Dodanie systemu uwierzytelniania 340Utworzenie szablonów uwierzytelniania 341Utworzenie widoków opartych na klasach 343Użycie domieszek w widokach opartych na klasach 344Praca z grupami i uprawnieniami 346Zarządzanie modułami kursu i treścią 352Użycie zbioru formularzy 352Dodanie treści do modułów kursów 356Zarządzanie modułami i treścią 361Zmiana kolejności modułów i treści 365Podsumowanie 368Rozdział 11. Renderowanie i buforowanie treści 369Wyświetlanie kursów 369Dodanie rejestracji uczestnika 374Utworzenie widoku rejestracji uczestnika 374Zapisanie się na kurs 376Uzyskanie dostępu do treści kursu 379Generowanie różnych rodzajów treści 383Użycie frameworka buforowania 385Dostępne mechanizmy buforowania 386Instalacja Memcached 387Ustawienia bufora 387Dodanie Memcached do projektu 388Poziomy buforowania 389Użycie niskopoziomowego API buforowania 389Buforowanie fragmentów szablonu 393Buforowanie widoków 394Podsumowanie 395Rozdział 12. Utworzenie API 397Utworzenie API typu RESTful 397Instalacja Django Rest Framework 398Definiowanie serializacji 399Klasy parserów i renderowania formatów 400Utworzenie widoków listy i szczegółowego 401Serializacja zagnieżdżona 403Utworzenie własnych widoków 404Obsługa uwierzytelnienia 405Określenie uprawnień do widoków 406Utworzenie kolekcji widoku i routerów 408Dołączenie dodatkowych akcji do kolekcji widoku 409Tworzenie własnych uprawnień 410Serializacja treści kursu 410Podsumowanie 413Rozdział 13. Wdrożenie 415Wdrożenie w środowisku produkcyjnym 415Zarządzanie ustawieniami dla wielu środowisk 415Instalacja PostgreSQL 418Sprawdzenie projektu 419Udostępnianie Django za pomocą WSGI 419Instalacja uWSGI 419Konfiguracja uWSGI 420Instalacja Nginx 422Środowisko produkcyjne 422Konfiguracja Nginx 423Udostępnianie zasobów statycznych i multimedialnych 424Ochrona połączeń za pomocą SSL 425Utworzenie własnego oprogramowania pośredniczącego 428Utworzenie oprogramowania pośredniczącego do obsługi subdomeny 429Obsługa wielu subdomen za pomocą Nginx 430Implementacja własnych poleceń administracyjnych 431Podsumowanie 434Skorowidz 435O autorze: Antonio Melé — dzięki swojemu ojcu bardzo wcześnie zainteresował się informatyką i programowaniem. Od 2006 roku zajmuje się projektami Django; opiekuje się hiszpańską społecznością użytkowników tego frameworka (django.es). Jest założycielem Zenx IT, firmy informatycznej tworzącej aplikacje sieciowe dla klientów z różnych sektorów gospodarki. Pracował również — jako CTO i konsultant — dla wielu startupów informatycznych.
Informatyka
koparka bitcoinów, szczepienie odra, policja warszawa, pekao wpłatomaty, wiadomości kraków, zmiana w karcie nauczyciela, szkwały
yyyyy