Python_i_Django_Programowanie_aplikacji_webowych_pydjan.pdf

(400 KB) Pobierz
Python i Django.
Programowanie
aplikacji webowych
Autor: Jeff Forcier, Paul Bissex, Wesley Chun
T³umaczenie: Krzysztof Rychlicki-Kicior
ISBN: 978-83-246-2225-2
Tytu³ orygina³u:
Python Web Development
with Django (Developer's Library)
Format: 170x230, stron: 392
Odkryj pe³niê niezwyk³ych mo¿liwoœci Django i twórz funkcjonalne aplikacje
Jak w kilka minut za³o¿yæ blog?
Jak bez wysi³ku tworzyæ zaawansowane aplikacje?
Jak budowaæ modele i u¿ywaæ ich?
Django to stworzony w Pythonie, prosty i nowoczesny framework typu open source.
Umo¿liwia on budowanie funkcjonalnych aplikacji webowych bez potrzeby pisania setek
wierszy kodu. Zosta³ zaprojektowany w ten sposób, aby doskonale dzia³aæ jako zwarta
ca³oœæ, ale jego sk³adniki s¹ ze sob¹ na tyle luŸno powi¹zane, ¿e z ³atwoœci¹ mo¿na
dokonywaæ zmian, dodawaæ i aktualizowaæ funkcjonalnoœci. Ten podrêcznik pomo¿e Ci
szybko i efektywnie wykorzystaæ Django w praktyce.
Ksi¹¿ka
„Python
i Django. Programowanie aplikacji webowych” zawiera opisy
podstawowych i bardziej zaawansowanych elementów tego frameworka, a tak¿e wiele
przyk³adowych aplikacji, wspartych szczegó³owymi wyjaœnieniami dotycz¹cymi ich
budowy. Dziêki temu podrêcznikowi dowiesz siê, jak wykorzystaæ elastycznoœæ
i szybkoœæ tworzenia aplikacji w Pythonie w celu rozwi¹zania typowych problemów,
które mo¿esz napotkaæ podczas swojej pracy. Nauczysz siê tworzyæ formularze,
skrypty, w³asny system zarz¹dzania treœci¹ oraz aplikacje Django zaledwie w kilka
minut, a dziêki gotowym projektom poznasz tak¿e tajniki zaawansowanego
projektowania.
Python dla Django
Instrukcje warunkowe
Funkcje i definicje klas
Programowanie zorientowane obiektowo
Tworzenie bloga
Dynamiczne strony internetowe
Django — tworzenie i u¿ywanie modeli
URL, obs³uga http i widoki
Szablony i przetwarzanie formularzy
System zarz¹dzania treœci¹
Liveblog
Zaawansowane programowanie
Testowanie aplikacji
Poznaj i wykorzystaj nowe mo¿liwoœci programowania aplikacji!
Spis treści
Przedmowa ........................................................................13
Podziękowania ...................................................................19
O autorach ........................................................................21
Wprowadzenie ...................................................................23
Część I
Rozdział 1
Zaczynamy!
27
Python dla Django ..............................................................29
Umiejętności w Pythonie to umiejętności w Django ..........................29
Zaczynamy. Interaktywny interpreter Pythona ...................................30
Podstawy Pythona .........................................................................32
Komentarze .............................................................................32
Zmienne i przypisania ..............................................................33
Operatory ................................................................................33
Standardowe typy Pythona .............................................................34
Logiczne wartości obiektów ......................................................34
Liczby .....................................................................................35
Operatory arytmetyczne ............................................................36
Wbudowane typy liczbowe i funkcje fabryczne .............................36
Sekwencje i elementy iterowalne ...............................................37
Listy .......................................................................................40
Łańcuchy
znaków .....................................................................42
Sekwencyjne funkcje wbudowane i fabryczne .............................48
Typ odwzorowań — słownik ......................................................49
Podsumowanie typów standardowych ........................................52
Kontrola przepływu ........................................................................52
Instrukcje warunkowe ...............................................................52
Pętle .......................................................................................52
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
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
7
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
Rozdział 4
Django w szczegółach
113
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
Rozdział 7
183
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
Zgłoś jeśli naruszono regulamin