Tworzenie aplikacji internetowych w Django - Helion
Tytuł oryginału: Web Development with Django: Learn to build modern web applications with a Python-based framework
TÅ‚umaczenie: Joanna Zatorska
ISBN: 978-83-283-8364-7
stron: 788, Format: 164x239, okładka: twarda
Data wydania: 2022-04-01
Księgarnia: Helion
Cena książki: 77,40 zł (poprzednio: 129,00 zł)
Oszczędzasz: 40% (-51,60 zł)
Osoby które kupowały "Tworzenie aplikacji internetowych w Django", wybierały także:
- Windows Media Center. Domowe centrum rozrywki 66,67 zł, (8,00 zł -88%)
- Przywództwo w świecie VUCA. Jak być skutecznym liderem w niepewnym środowisku 58,64 zł, (12,90 zł -78%)
- Mapa Agile & Scrum. Jak si 57,69 zł, (15,00 zł -74%)
- Sztuka podst 53,46 zł, (13,90 zł -74%)
- Lean dla bystrzaków. Wydanie II 49,62 zł, (12,90 zł -74%)
Spis treści
Django. Tworzenie nowoczesnych aplikacji internetowych w Pythonie -- spis treści
Wstęp
Wprowadzenie
Rozdział 1. Wprowadzenie do Django
- Wstęp
- Tworzenie szkieletu projektu i aplikacji Django
- Ćwiczenie 1.1. Tworzenie projektu, aplikacji oraz serwera roboczego
- Paradygmat Model View Template
- Modele
- Widoki
- Szablony
- Wstęp do HTTP
- Przetwarzanie żądania
- Projekt Django
- Aplikacje Django
- Konfiguracja programu PyCharm
- Ćwiczenie 1.2. Konfiguracja projektu w programie PyCharm
- SzczegóÅ‚owe informacje o widokach
- Mapowanie adresów URL
- Ćwiczenie 1.3. Pisanie widoku i odwzorowania URL
- GET, POST i obiekty QueryDict
- Ćwiczenie 1.4. Sprawdzanie wartości GET i korzystanie z obiektu QueryDict
- Analiza ustawień Django
- Znajdowanie szablonów HTML w katalogach aplikacji
- Ćwiczenie 1.5. Tworzenie katalogu templates oraz szablonu bazowego
- Renderowanie szablonu za pomocÄ… funkcji render
- Ćwiczenie 1.6. Renderowanie szablonu w widoku
- Renderowanie zmiennych w szablonach
- Ćwiczenie 1.7. Użycie zmiennych w szablonach
- Debugowanie i obsÅ‚uga bÅ‚Ä™dów
- WyjÄ…tki
- Ćwiczenie 1.8. Generowanie i wyÅ›wietlanie wyjÄ…tków
- Debugowanie
- Ćwiczenie 1.9. Debugowanie kodu
- Zadanie 1.1. Tworzenie ekranu powitalnego witryny
- Zadanie 1.2. Szkielet wyszukiwarki w witrynie Book
- Podsumowanie
Rozdział 2. Modele i migracje
- Wstęp
- Bazy danych
- Relacyjne bazy danych
- Nierelacyjne bazy danych
- Operacje bazodanowe z użyciem języka SQL
- Typy danych w relacyjnych bazach danych
- Ćwiczenie 2.1. Tworzenie bazy danych książek
- Operacje CRUD w języku SQL
- Operacje tworzenia w języku SQL
- Operacje odczytu w języku SQL
- Operacje aktualizacji w języku SQL
- Operacje usuwania w języku SQL
- ORM w platformie Django
- Konfiguracja bazy danych i tworzenie aplikacji Django
- Aplikacje Django
- Migracje Django
- Tworzenie modeli i migracji Django
- Typy pól
- Opcje pól
- Klucze gÅ‚ówne
- Relacje
- Wiele do jednego
- Wiele do wielu
- Relacje jeden do jednego
- Dodawanie modelu Review
- Metody modeli
- Migracja aplikacji reviews
- Operacje bazodanowe CRUD w Django
- Ćwiczenie 2.2. Tworzenie wpisu w bazie danych Bookr
- Ćwiczenie 2.3. Tworzenie wpisu za pomocą metody create()
- Tworzenie obiektu z kluczem obcym
- Ćwiczenie 2.4. Tworzenie rekordów dla relacji wiele do jednego
- Ćwiczenie 2.5. Tworzenie rekordów z relacjami wiele do wielu
- Ćwiczenie 2.6. Relacja wiele do wielu z wykorzystaniem metody add()
- Użycie metod create() i set() podczas tworzenia relacji
- Operacje odczytu
- Ćwiczenie 2.7. Pobieranie obiektu za pomocą metody get()
- Zwracanie obiektu za pomocÄ… metody get()
- Ćwiczenie 2.8. Użycie metody al() do pobrania zbioru obiektów
- Pobieranie obiektów za pomocÄ… filtrowania
- Ćwiczenie 2.9. Użycie metody filter() do pobierania obiektów
- Filtrowanie za pomocÄ… wyszukiwania pól
- Dopasowywanie wzorców w operacjach filtrowania
- Pobieranie obiektów poprzez wykluczanie
- Pobieranie obiektów za pomocÄ… metody order_by()
- Przeszukiwanie relacji
- Wyszukiwanie na podstawie kluczy obcych
- Przeszukiwanie na podstawie nazwy modelu
- Przeszukiwanie relacji z kluczem obcym za pomocÄ… instancji obiektu
- Ćwiczenie 2.10. Znajdowanie obiektów na podstawie relacji wiele do wielu za pomocÄ… wyszukiwania pola
- Ćwiczenie 2.11. Przeszukiwanie relacji wiele do wielu za pomocÄ… obiektów
- Ćwiczenie 2.12. Przeszukiwanie relacji wiele do wielu za pomocą metody set()
- Ćwiczenie 2.13. Użycie metody update()
- Ćwiczenie 2.14. Użycie metody delete()
- Zadanie 2.1. Tworzenie modeli dla aplikacji do zarzÄ…dzania projektami
- Wypełnianie danymi bazy danych projektu Bookr
- Podsumowanie
Rozdział 3. Mapowanie URL, widoki i szablony
- Wstęp
- Widoki oparte na funkcjach
- Widoki oparte na klasach
- Konfiguracja URL
- Ćwiczenie 3.1. Implementowanie prostego widoku opartego na funkcji
- Szablony
- Ćwiczenie 3.2. Użycie szablonów do wyÅ›wietlenia komunikatu powitalnego
- JÄ™zyk szablonów Django
- Ćwiczenie 3.3. Wyświetlanie listy książek i recenzji
- Dziedziczenie szablonów
- Stylowanie szablonów za pomocÄ… biblioteki Bootstrap
- Ćwiczenie 3.4. Dodawanie dziedziczenia szablonów i paska nawigacyjnego Bootstrapa
- Zadanie 3.1. Implementacja widoku szczegóÅ‚ów książki
- Podsumowanie
Rozdział 4. Wstęp do witryny administracyjnej Django
- Wstęp
- Tworzenie konta superużytkownika
- Ćwiczenie 4.1. Tworzenie konta superużytkownika
- Operacje CRUD za pomocÄ… aplikacji administracyjnej Django
- Tworzenie
- Pobieranie danych
- Aktualizowanie
- Usuwanie
- Użytkownicy i grupy
- Ćwiczenie 4.2. Dodawanie i modyfikowanie użytkowników i grup w aplikacji administracyjnej
- Rejestrowanie modelu Reviews
- Listy obiektów do edycji
- Strona edycji modelu Publisher
- Strona służąca do edycji książki
- Ćwiczenie 4.3. Klucze obce i usuwanie z poziomu aplikacji administracyjnej
- Dostosowywanie interfejsu administracyjnego
- Poprawki dotyczące całej witryny administracyjnej Django
- Analiza obiektu AdminSite w powłoce Pythona
- Zadanie 4.1. Dostosowywanie obiektu SiteAdmin
- Dostosowywanie klas ModelAdmin
- Ćwiczenie 4.4. Dodawanie filtra na podstawie daty oraz hierarchii dat
- Pasek wyszukiwania
- Wykluczanie i grupowanie pól
- Zadanie 4.2. Dostosowywanie aplikacji administracyjnych dla modeli
- Podsumowanie
RozdziaÅ‚ 5. Zwracanie plików statycznych
- Wstęp
- Zwracanie plików statycznych
- Wprowadzenie do wyszukiwarek plików statycznych
- Wyszukiwarki plików statycznych - użycie podczas obsÅ‚ugi żądania
- AppDirectoriesFinder
- Przestrzenie nazw plików statycznych
- Ćwiczenie 5.1. Zwracanie pliku z katalogu aplikacji
- Generowanie statycznych adresów URL za pomocÄ… znacznika szablonów static
- Ćwiczenie 5.2. Użycie znacznika szablonów static
- FileSystemFinder
- Ćwiczenie 5.3. Zwracanie plików z katalogu static projektu
- Wyszukiwarki plików statycznych - użycie polecenia collectstatic
- Ćwiczenie 5.4. Kopiowanie plików statycznych dla Å›rodowiska produkcyjnego
- Tryb STATICFILES_DIRS z przedrostkiem
- Polecenie findstatic
- Ćwiczenie 5.5. Znajdowanie plików poleceniem findstatic
- Zwracanie ostatnich plików (w celu unieważnienia pamiÄ™ci podrÄ™cznej)
- Ćwiczenie 5.6. Eksploracja silnika przechowywania ManifestFilesStorage
- Niestandardowe silniki magazynowania
- Zadanie 5.1. Dodawanie logo do aplikacji reviews
- Zadanie 5.2. Ulepszenia w stylach CSS
- Zadanie 5.3. Dodawanie globalnego logo
- Podsumowanie
Rozdział 6. Formularze
- Wstęp
- Czym jest formularz?
- Element <form>
- Rodzaje pól wejÅ›ciowych
- Ćwiczenie 6.1. Tworzenie formularza HTML
- Bezpieczeństwo formularza dzięki ochronie przeciwko Cross-Site Request Forgery
- Dostęp do danych w widoku
- Ćwiczenie 6.2. Pobieranie danych POST w widoku
- Wybór miÄ™dzy żądaniami GET i POST
- Dlaczego trzeba używać metody GET, jeśli można umieścić parametry w URL?
- Biblioteka Forms w Django
- Definiowanie formularza
- Renderowanie formularza w szablonie
- Ćwiczenie 6.3. Tworzenie i renderowanie formularza Django
- Walidacja formularzy i pobieranie wartości Pythona
- Ćwiczenie 6.4. Walidacja formularza w widoku
- Wbudowana walidacja pól
- Ćwiczenie 6.5. Dodatkowa walidacja pól
- Zadanie 6.1. Wyszukiwanie książek
- Podsumowanie
Rozdział 7. Zaawansowana walidacja formularzy i formularzy modeli
- Wstęp
- Niestandardowa walidacja i czyszczenie pól
- Niestandardowe walidatory
- Metody oczyszczania
- Walidacja na podstawie wielu pól
- Ćwiczenie 7.1. Niestandardowe metody oczyszczania i walidacji
- Wartości zastępcze i początkowe
- Ćwiczenie 7.2. Wartości zastępcze i początkowe
- Tworzenie i edytowanie modeli Django
- Klasa ModelForm
- Ćwiczenie 7.3. Tworzenie i edytowanie modelu Publisher
- Zadanie 7.1. Stylowanie i integracja formularza modelu Publisher
- Zadanie 7.2. Interfejs tworzenia instancji modelu Review
- Podsumowanie
RozdziaÅ‚ 8. Zwracanie multimediów i przesyÅ‚anie plików
- Wstęp
- Ustawienia zwiÄ…zane z przesyÅ‚aniem i zwracaniem plików multimedialnych
- Zwracanie plików multimedialnych w Å›rodowisku roboczym
- Ćwiczenie 8.1. Konfiguracja magazynu plików multimedialnych i ich zwracanie
- Procesory kontekstu i użycie opcji MEDIA_URL w szablonach
- Ćwiczenie 8.2. Ustawienia szablonu i użycie opcji MEDIA_URL w szablonach
- PrzesyÅ‚anie plików za pomocÄ… formularzy HTML
- ObsÅ‚uga przesÅ‚anych plików w widoku
- Ćwiczenie 8.3. PrzesyÅ‚anie i pobieranie plików
- PrzesyÅ‚anie plików za pomocÄ… formularzy Django
- Ćwiczenie 8.4. PrzesyÅ‚anie plików za pomocÄ… formularza Django
- PrzesyÅ‚anie obrazów za pomocÄ… formularzy Django
- Zmiana rozmiaru obrazów za pomocÄ… biblioteki Pillow
- Ćwiczenie 8.5. PrzesyÅ‚anie obrazów za pomocÄ… formularzy Django
- Zwracanie przesÅ‚anych (i innych) plików za pomocÄ… Django
- Magazynowanie plików w instancjach modeli
- Zapisywanie obrazów w instancjach modeli
- Korzystanie z klasy FieldFile
- OdwoÅ‚ywanie siÄ™ do plików multimedialnych w szablonach
- Ćwiczenie 8.6. FileField i ImageField w modelach
- Klasa ModelForm i przesyÅ‚anie plików
- Ćwiczenie 8.7. PrzesyÅ‚anie plików i obrazów za pomocÄ… instancji klasy ModelForm
- Zadanie 8.1. PrzesyÅ‚anie obrazu i plików PDF dotyczÄ…cych książek
- Zadanie 8.2. Wyświetlanie okładki i łącza do fragmentu książki
- Podsumowanie
Rozdział 9. Sesje i uwierzytelnianie
- Wstęp
- Middleware
- Moduły middleware
- Implementacja widoków i szablonów do uwierzytelniania
- Ćwiczenie 9.1. Zmiana przeznaczenia szablonu logowania aplikacji administracyjnej
- Przechowywanie haseł w Django
- Strona profilu i obiekt request.user
- Ćwiczenie 9.2. Dodawanie strony profilu
- Dekoratory uwierzytelniania i przekierowania
- Ćwiczenie 9.3. Dodawanie dekoratorów uwierzytelniania do widoków
- Dodawanie danych uwierzytelniania do szablonów
- Ćwiczenie 9.4. Przełączanie łączy logowania i wylogowania w bazowym szablonie
- Zadanie 9.1. UdostÄ™pnianie treÅ›ci na podstawie stanu uwierzytelnienia za pomocÄ… bloków warunkowych w szablonach
- Sesje
- Moduł pickle lub magazyn w formacie JSON
- Ćwiczenie 9.5. Analiza klucza sesji
- Przechowywanie danych w sesji
- Ćwiczenie 9.6. Zapisywanie w sesji ostatnio wyświetlanych książek
- Zadanie 9.2. Wykorzystanie magazynu sesji na stronie wyszukiwania książek
- Podsumowanie
Rozdział 10. Zaawansowane aspekty aplikacji administracyjnej Django i jej dostosowywanie
- Wstęp
- Dostosowywanie witryny administracyjnej
- Wykrywanie plików administracyjnych w Django
- Klasa AdminSite w Django
- Ćwiczenie 10.1. Tworzenie niestandardowej witryny administracyjnej w projekcie Bookr
- Nadpisywanie domyślnej właściwości admin.site
- Ćwiczenie 10.2. Nadpisywanie domyślnej witryny administracyjnej
- Dostosowanie tekstu w witrynie administracyjnej za pomocÄ… atrybutów AdminSite
- Dostosowywanie szablonów witryny administracyjnej
- Ćwiczenie 10.3. Dostosowanie szablonu wylogowania dla witryny administracyjnej Bookr
- Dodawanie widoków do witryny administracyjnej
- Tworzenie nowej funkcji widoku
- DostÄ™p do wspólnych zmiennych szablonu
- Mapowanie adresów URL na niestandardowy widok
- Ograniczanie niestandardowych widoków do witryny administracyjnej
- Ćwiczenie 10.4. Dodawanie niestandardowych widoków do witryny administracyjnej
- Przekazywanie dodatkowych kluczy do szablonów za pomocÄ… zmiennych szablonów
- Zadanie 10.1. Tworzenie niestandardowego interfejsu administracyjnego z wbudowanÄ… wyszukiwarkÄ…
- Podsumowanie
RozdziaÅ‚ 11. Zaawansowane aspekty szablonów i widoki oparte na klasach
- Wstęp
- Filtry szablonów
- Niestandardowe filtry szablonów
- Filtry szablonów
- Konfiguracja katalogu sÅ‚użącego do zapisywania filtrów szablonów
- Konfiguracja biblioteki szablonów
- Implementowanie niestandardowej funkcji filtra
- Użycie niestandardowych filtrów w szablonach
- Ćwiczenie 11.1. Tworzenie niestandardowego filtra szablonów
- Filtry tekstowe
- Znaczniki szablonów
- Typy znaczników szablonów
- Proste znaczniki
- Tworzenie prostych znaczników szablonów
- Ćwiczenie 11.2. Tworzenie niestandardowego prostego znacznika
- Znaczniki włączające
- Ćwiczenie 11.3. Budowanie niestandardowego znacznika włączającego
- Widoki Django
- Widoki oparte na klasach
- Ćwiczenie 11.4. Tworzenie katalogu książek w widoku opartym na klasach
- Operacje CRUD za pomocÄ… widoków opartych na klasach
- Zadanie 11.1. Renderowanie szczegóÅ‚ów na stronie profilu użytkownika za pomocÄ… znaczników wÅ‚Ä…czajÄ…cych
- Podsumowanie
Rozdział 12. Tworzenie API REST-owego
- Wstęp
- API REST-owe
- Django REST Framework
- Instalacja i konfiguracja
- Widoki API oparte na funkcjach
- Ćwiczenie 12.1. Tworzenie prostego API REST-owego
- Serializery
- Ćwiczenie 12.2. Tworzenie widoku API w celu wyświetlenia listy książek
- Widoki API oparte na klasach i widoki generyczne
- Serializery modeli
- Ćwiczenie 12.3. Tworzenie widoków API opartych na klasach i serializerów modeli
- Zadanie 12.1. Tworzenie punktu koÅ„cowego API dla strony poÅ›wiÄ™conej najaktywniejszym wspóÅ‚autorom
- Obiekty typu ViewSet
- Routery
- Ćwiczenie 12.4. Używanie zbiorów widoków i routerów
- Uwierzytelnianie
- Uwierzytelnianie oparte na tokenach
- Ćwiczenie 12.5. Implementowanie uwierzytelniania opartego na tokenach w API aplikacji Bookr
- Podsumowanie
RozdziaÅ‚ 13. Generowanie plików CSV, PDF i innych plików binarnych
- Wstęp
- ObsÅ‚uga plików CSV w Pythonie
- Korzystanie z modułu csv Pythona
- Odczytywanie danych z pliku CSV
- Ćwiczenie 13.1. Odczyt pliku CSV w Pythonie
- Zapisywanie danych do plików CSV za pomocÄ… Pythona
- Ćwiczenie 13.2. Generowanie pliku CSV za pomocą modułu Pythona csv
- Lepszy sposób odczytu i zapisu plików CSV
- Przetwarzanie plików Excela w Pythonie
- Eksportowanie danych do plików binarnych
- ObsÅ‚uga plików XLSX za pomocÄ… pakietu XlsxWriter
- Ćwiczenie 13.3. Tworzenie plików XLSX w Pythonie
- ObsÅ‚uga plików PDF w Pythonie
- Przekształcanie stron WWW do formatu PDF
- Ćwiczenie 13.4. Generowanie dokumentu PDF na podstawie strony WWW w Pythonie
- Tworzenie wykresów w Pythonie
- Generowanie wykresów za pomocÄ… biblioteki plotly
- Ćwiczenie 13.5. Generowanie wykresów w Pythonie
- Integrowanie biblioteki plotly z Django
- Integrowanie wizualizacji z Django
- Ćwiczenie 13.6. Wizualizacja historii przeczytanych książek na stronie profilowej użytkownika
- Zadanie 13.1. Eksportowanie książek przeczytanych przez użytkownika do pliku XLSX
- Podsumowanie
Rozdział 14. Testowanie
- Wstęp
- Dlaczego testowanie jest ważne
- Testy automatyczne
- Testowanie w Django
- Implementowanie przypadków testowych
- Testy jednostkowe w Django
- Korzystanie z asercji
- Ćwiczenie 14.1. Pisanie prostego testu jednostkowego
- Konfiguracja przed testami i czyszczenie po wykonaniu każdego przypadku testowego
- Testowanie modeli Django
- Ćwiczenie 14.2. Testowanie modeli Django
- Testowanie widoków Django
- Ćwiczenie 14.3. Pisanie przypadków testowych dla widoków Django
- Testowanie widoków wymagajÄ…cych uwierzytelniania
- Ćwiczenie 14.4. Pisanie przypadków testowych w celu walidacji uwierzytelnionych użytkowników
- Klasa RequestFactory Django
- Ćwiczenie 14.5. Testowanie widoków za pomocÄ… klasy RequestFactory
- Testowanie widoków opartych na klasach
- Klasy przypadków testowych w Django
- SimpleTestCase
- TransactionTestCase
- LiveServerTestCase
- Modularyzacja kodu testowego
- Zadanie 14.1. Testowanie modeli i widoków w projekcie Bookr
- Podsumowanie
Rozdział 15. Zewnętrzne biblioteki Django
- Wstęp
- Zmienne środowiskowe
- django-configurations
- Zmiany w pliku manage.py
- Konfiguracja ze zmiennych środowiskowych
- Ćwiczenie 15.1. Konfiguracja biblioteki django-configurations
- dj-database-url
- Ćwiczenie 15.2. Konfiguracja biblioteki dj-database-url
- Django Debug Toolbar
- Ćwiczenie 15.3. Konfiguracja narzędzia Django Debug Toolbar
- django-crispy-forms
- Filtr crispy
- Znacznik szablonów crispy
- Ćwiczenie 15.4. Użycie biblioteki Django Crispy Forms z formularzem SearchForm
- django-allauth
- Inicjalizacja uwierzytelniania za pomocÄ… biblioteki django-allauth
- Zadanie 15.1. Aktualizacja formularza z wykorzystaniem klasy FormHelper
- Podsumowanie
Rozdział 16. Używanie frontendowej biblioteki JavaScriptu z Django
- Wstęp
- Platformy JavaScriptu
- Wprowadzenie do JavaScriptu
- React
- Komponenty
- Ćwiczenie 16.1. Konfiguracja przykładowej strony z wykorzystaniem Reacta
- JSX
- Ćwiczenie 16.2. JSX i Babel
- Właściwości JSX
- Ćwiczenie 16.3. Właściwości komponentu Reacta
- Obiekty Promise w JavaScripcie
- fetch
- Ćwiczenie 16.4. Pobieranie i wyświetlanie książek
- Znacznik szablonów verbatim
- Zadanie 16.1. PodglÄ…d recenzji
- Podsumowanie
Dodatek A
Skorowidz