Jeff Forcier, ebooki
[ Pobierz całość w formacie PDF ]
6
Python i Django. Programowanie aplikacji webowych
Obsługa wyjątków ..........................................................................54
Klauzula finally ........................................................................55
Rzucanie wyjątkami z wykorzystaniem raise ...............................55
Pliki .............................................................................................56
Funkcje ........................................................................................57
Deklarowanie i wywoływanie funkcji ...........................................58
Funkcje są obiektami pierwszej klasy ........................................60
Funkcje anonimowe .................................................................61
*args i **kwargs .....................................................................63
Programowanie zorientowane obiektowo .........................................67
Definicje klas ..........................................................................68
Tworzenie egzemplarzy klas ......................................................68
Klasy pochodne .......................................................................69
Klasy wewnętrzne ....................................................................70
Wyrażenia regularne ......................................................................70
Moduł re .................................................................................71
Wyszukiwanie vs. dopasowywanie .............................................72
Typowe pułapki .............................................................................72
Jednoelementowa krotka ..........................................................72
Moduły ....................................................................................72
Zmienność (modyfikowalność) ..................................................74
Konstruktor vs. inicjalizator .......................................................76
Styl pisania kodu (PEP 8 i Beyond) .................................................77
Wcięcia — tylko z czterech spacji ..............................................78
Korzystaj ze spacji, a nie tabulacji .............................................78
Nie nadużywaj „jednolinijkowców” .............................................78
Twórz łańcuchy dokumentacji ....................................................78
Podsumowanie .............................................................................80
Rozdział 2
Django dla niecierpliwych — tworzymy blog ........................81
Tworzenie projektu ........................................................................82
Uruchamianie serwera ...................................................................84
Tworzenie bloga ............................................................................85
Projektowanie modelu ...................................................................86
Konfiguracja bazy danych ...............................................................87
Wykorzystywanie serwerów baz danych ......................................87
SQLite w praktyce ....................................................................88
Tworzenie tabel .......................................................................89
Konfiguracja automatycznej aplikacji administratora .........................90
Testowanie panelu administracyjnego .............................................91
Upublicznianie bloga .....................................................................95
Tworzenie szablonu ..................................................................96
Tworzenie funkcji widoku ..........................................................97
Tworzenie wzorca URL ..............................................................98
Spis treści
7
Końcowe poprawki ........................................................................99
(Nie)szablonowe rozwiązania .....................................................99
Sortowanie i porządkowanie wpisów ........................................100
Formatowanie znacznika czasu przy użyciu filtra szablonów .......101
Podsumowanie ...........................................................................102
Rozdział 3
Na dobry początek ...........................................................103
Podstawy dynamicznych stron internetowych .................................103
Komunikacja — HTTP, URL, żądania i odpowiedzi .....................104
Przechowywanie danych — SQL i relacyjne bazy danych ............104
Warstwa prezentacji — tworzenie dokumentów
na podstawie szablonów ......................................................105
Łączenie elementów układanki ................................................105
Modele, widoki i szablony ............................................................106
Separacja warstw (MVC) .........................................................106
Modele danych ......................................................................107
Widoki ..................................................................................107
Szablony ...............................................................................108
Architektura Django — ogólne spojrzenie ......................................108
Filozofia programowania w Django ................................................110
Django ma być pythoniczne .....................................................110
Nie powtarzaj się (DRY)! .........................................................111
Luźne powiązania i elastyczność .............................................111
Błyskawiczne programowanie ..................................................112
Podsumowanie ...........................................................................112
Część II
Django w szczegółach
113
Rozdział 4
Tworzenie i używanie modeli .............................................115
Tworzenie modeli ........................................................................115
Dlaczego ORM? .....................................................................115
Typy pól w Django ..................................................................117
Relacje pomiędzy modelami ....................................................119
Dziedziczenie modeli ..............................................................123
Wewnętrzna klasa Meta .........................................................127
Rejestracja i opcje w panelu administratora .............................128
Wykorzystywanie modeli ..............................................................129
Tworzenie i modyfikowanie bazy danych za pomocą manage.py ....129
Składnia zapytań ...................................................................131
Wykorzystywanie funkcji SQL niedostępnych w Django ..............139
Podsumowanie ...........................................................................142
8
Python i Django. Programowanie aplikacji webowych
Rozdział 5
URL, obsługa HTTP i widoki ..............................................145
Adresy URL .................................................................................145
Wprowadzenie do plików URLconf ...........................................145
url — metoda zamiast krotek ..................................................147
Wykorzystywanie wielu obiektów patterns ................................148
Dołączanie plików URL przy użyciu funkcji include .....................148
Obiekty funkcji vs. łańcuchy zawierające nazwy funkcji ..............149
HTTP w praktyce — żądania, odpowiedzi i warstwa pośrednicząca .....150
Obiekty żądań ........................................................................151
Obiekty odpowiedzi ................................................................154
Warstwa pośrednicząca ..........................................................154
Widoki — logika aplikacji .............................................................156
To tylko funkcje .....................................................................156
Widoki generyczne .................................................................157
Widoki półgeneryczne .............................................................159
Widoki własne .......................................................................160
Podsumowanie ...........................................................................162
Rozdział 6
Szablony i przetwarzanie formularzy ..................................163
Szablony ....................................................................................163
Konteksty ..............................................................................164
Składnia języka szablonów .....................................................164
Formularze .................................................................................170
Tworzenie formularzy ..............................................................170
Wypełnianie formularzy ...........................................................175
Walidacja i czyszczenie ...........................................................177
Wyświetlanie formularzy .........................................................178
Widgety .................................................................................180
Podsumowanie ...........................................................................182
Część III Przykładowe aplikacje Django
183
Rozdział 7
Galeria zdjęć ....................................................................185
Model danych .............................................................................186
Wysyłanie plików .........................................................................187
Instalacja PIL ..............................................................................188
Testowanie pola ImageField .........................................................189
Tworzenie własnego pola do wysyłania plików ................................190
Inicjalizacja ...........................................................................192
Dodawanie atrybutów do pola .................................................194
Zapisywanie i usuwanie miniatury ...........................................195
Wykorzystujemy pole ThumbnailImageField ....................................196
Adresy URL zgodne z regułą DRY ..................................................196
Schematy adresów URL w aplikacji Item .......................................199
Spis treści
9
Wiązanie aplikacji z szablonami ....................................................201
Podsumowanie ...........................................................................205
Rozdział 8
System zarządzania treścią ..............................................207
CMS — z czym to się je? .............................................................207
Anty-CMS — strony płaskie ..........................................................208
Włączanie aplikacji Flatpages ..................................................208
Szablony stron płaskich ..........................................................210
Testowanie ............................................................................211
CMS — prosty, ale własny! ..........................................................211
Tworzenie modelu ..................................................................212
Instrukcje importujące ............................................................214
Uzupełnianie modeli ...............................................................214
Kontrola widoczności artykułów ...............................................215
Wykorzystujemy Markdown .....................................................216
Wzorce URL w pliku urls.py .....................................................218
Widoki administratora ............................................................219
Wyświetlanie treści przy użyciu widoków generycznych ..............221
Układ szablonów ....................................................................223
Wyświetlanie artykułów ...........................................................224
Dodajemy funkcję wyszukiwania ..............................................226
Zarządzanie użytkownikami .....................................................228
Wspieranie przepływu pracy ....................................................229
Poszerzanie możliwości systemu ..................................................229
Podsumowanie ...........................................................................231
Rozdział 9 Liveblog ...........................................................................233
Czym tak naprawdę jest Ajax? ......................................................234
Dlaczego Ajax? ......................................................................234
Projekt aplikacji ..........................................................................235
Wybieramy bibliotekę Ajaksa ...................................................235
Przygotowywanie aplikacji ............................................................236
Dodajemy kod Ajaksa ..................................................................240
Podstawy ..............................................................................240
„X” w Ajax (czyli XML vs. JSON) ...............................................241
Instalacja biblioteki JavaScript ................................................242
Konfiguracja i testowanie jQuery .............................................243
Tworzenie funkcji widoku ........................................................244
Wykorzystywanie funkcji widoku przy użyciu kodu JavaScript ......246
Podsumowanie ...........................................................................247
Rozdział 10 Schowek .........................................................................249
Definicja modelu .........................................................................250
Tworzenie szablonów ...................................................................251
Obsługa adresów URL .................................................................253
[ Pobierz całość w formacie PDF ]