Django 2 Praktyczne tworzenie aplikacji sieciowych Wydanie II.pdf

(3820 KB) Pobierz
Tytuł oryginału: Django 2 by Example
Tłumaczenie: Radosław Meryk
ISBN: 978-83-283-5551-4
Copyright © Packt Publishing 2018. First published in the English language under the title ‘Django 2 by
Example – (9781788472487)’
Polish edition copyright © 2019 by Helion SA
All rights reserved.
All rights reserved. No part of this book may be reproduced or transmitted in any form or by any means,
electronic or mechanical, including photocopying, recording or by any information storage retrieval system,
without permission from the Publisher.
Wszelkie prawa zastrzeżone. Nieautoryzowane rozpowszechnianie całości lub fragmentu niniejszej
publikacji w jakiejkolwiek postaci jest zabronione. Wykonywanie kopii metodą kserograficzną,
fotograficzną, a także kopiowanie książki na nośniku filmowym, magnetycznym lub innym powoduje
naruszenie praw autorskich niniejszej publikacji.
Wszystkie znaki występujące w tekście są zastrzeżonymi znakami firmowymi bądź towarowymi ich
właścicieli.
Autor oraz Helion SA dołożyli wszelkich starań, by zawarte w tej książce informacje były kompletne
i rzetelne. Nie biorą jednak żadnej odpowiedzialności ani za ich wykorzystanie, ani za związane z tym
ewentualne naruszenie praw patentowych lub autorskich. Autor oraz Helion SA nie ponoszą również
żadnej odpowiedzialności za ewentualne szkody wynikłe z wykorzystania informacji zawartych w książce.
Helion SA
ul. Kościuszki 1c, 44-100 Gliwice
tel. 32 231 22 19, 32 230 98 63
e-mail:
helion@helion.pl
WWW:
http://helion.pl
(księgarnia internetowa, katalog książek)
Pliki z przykładami omawianymi w książce można znaleźć pod adresem:
ftp://ftp.helion.pl/przyklady/djpta2.zip
Drogi Czytelniku!
Jeżeli chcesz ocenić tę książkę, zajrzyj pod adres
http://helion.pl/user/opinie/djpta2
Możesz tam wpisać swoje uwagi, spostrzeżenia, recenzję.
Printed in Poland.
Kup książkę
Poleć książkę
Oceń książkę
Księgarnia internetowa
Lubię to! » Nasza społeczność
Spis treści
O autorze
O recenzentach
Przedmowa
Rozdział 1. Utworzenie aplikacji bloga
Instalacja Django
Utworzenie odizolowanego
środowiska
Pythona
Instalowanie Django za pomocą pip
Tworzenie pierwszego projektu
Uruchamianie serwera programistycznego
Ustawienia projektu
Projekty i aplikacje
Utworzenie aplikacji
Projekt schematu danych dla bloga
Aktywacja aplikacji
Tworzenie i stosowanie migracji
Tworzenie witryny administracyjnej dla modeli
Tworzenie superużytkownika
Witryna administracyjna Django
Dodawanie modeli do witryny administracyjnej
Personalizacja sposobu wyświetlania modeli
Praca z obiektami QuerySet i menedżerami
Tworzenie obiektów
Aktualizowanie obiektów
Pobieranie obiektów
Usunięcie obiektu
Kiedy następuje określenie zawartości kolekcji QuerySet?
Utworzenie menedżerów modelu
11
12
13
17
17
18
19
20
21
23
24
24
25
27
27
29
29
29
30
32
34
34
35
35
37
37
37
Kup książkę
Poleć książkę
Spis treści
Przygotowanie widoków listy i szczegółów
Utworzenie widoków listy i szczegółów
Dodanie wzorców adresów URL do widoków
Kanoniczne adresy URL dla modeli
Utworzenie szablonów dla widoków
Dodanie stronicowania
Użycie widoków opartych na klasach
Podsumowanie
38
38
39
41
41
45
47
48
Rozdział 2. Usprawnienie bloga za pomocą funkcji zaawansowanych
Współdzielenie postów przy użyciu wiadomości e-mail
Tworzenie formularzy w Django
Obsługa formularzy w widokach
Wysyłanie wiadomości e-mail w Django
Generowanie formularza w szablonie
Utworzenie systemu komentarzy
Utworzenie formularza na podstawie modelu
Obsługa klasy ModelForm w widoku
Dodanie komentarzy do szablonu szczegółów posta
Dodanie funkcjonalności tagów
Pobieranie podobnych postów
Podsumowanie
49
49
50
51
52
55
58
60
60
62
65
70
72
Rozdział 3. Rozbudowa aplikacji bloga
Utworzenie własnych filtrów i znaczników szablonu
Utworzenie własnych znaczników szablonu
Utworzenie własnych filtrów szablonu
Dodanie mapy witryny
Utworzenie kanału wiadomości dla postów bloga
Dodanie do bloga wyszukiwania pełnotekstowego
Instalacja PostgreSQL
Proste wyszukiwania
Wyszukiwanie w wielu polach
Utworzenie widoku wyszukiwania
Stemming i ranking wyników
Wagi zapytań
Wyszukiwanie z podobieństwem trygramu
Inne silniki wyszukiwania pełnotekstowego
Podsumowanie
75
75
76
80
82
85
87
88
89
90
90
92
93
94
95
95
Rozdział 4. Utworzenie witryny społecznościowej
Utworzenie projektu witryny społecznościowej
Rozpoczęcie pracy nad aplikacją społecznościową
Użycie frameworka uwierzytelniania w Django
Utworzenie widoku logowania
Użycie widoków uwierzytelniania w Django
Widoki logowania i wylogowania
Widoki zmiany hasła
Widoki zerowania hasła
97
97
98
99
100
105
105
110
112
6
Kup książkę
Poleć książkę
Spis treści
Rejestracja użytkownika i profile użytkownika
Rejestracja użytkownika
Rozbudowa modelu User
Użycie własnego modelu User
Użycie frameworka komunikatów
Implementacja własnego mechanizmu uwierzytelniania
Dodanie do witryny uwierzytelnienia za pomocą innej witryny społecznościowej
Uwierzytelnienie za pomocą serwisu Facebook
Uwierzytelnienie za pomocą serwisu Twitter
Uwierzytelnienie za pomocą serwisu Google
Podsumowanie
117
117
120
126
126
128
130
132
136
138
142
Rozdział 5. Udostępnianie treści w witrynie internetowej
Utworzenie witryny internetowej do kolekcjonowania obrazów
Utworzenie modelu Image
Zdefiniowanie relacji typu „wiele do wielu”
Rejestracja modelu Image w witrynie administracyjnej
Umieszczanie treści pochodzącej z innych witryn internetowych
Usunięcie zawartości pól formularza
Nadpisanie metody save() egzemplarza ModelForm
Utworzenie bookmarkletu za pomocą jQuery
Utworzenie widoku szczegółowego obrazu
Utworzenie miniatury za pomocą sorl-thumbnail
Dodanie akcji AJAX za pomocą jQuery
Wczytanie jQuery
CSRF w
żądaniach
AJAX
Wykonywanie
żądań
AJAX za pomocą jQuery
Utworzenie własnego dekoratora dla widoków
Dodanie stronicowania AJAX do widoków listy
Podsumowanie
143
144
144
146
146
147
148
148
152
160
162
163
165
166
167
170
171
175
Rozdział 6.
Śledzenie
działań użytkownika
Utworzenie systemu obserwacji
Utworzenie relacji typu „wiele do wielu” za pomocą modelu pośredniego
Utworzenie widoków listy i szczegółowego dla profilu użytkownika
Utworzenie widoku AJAX pozwalającego na obserwację użytkowników
Budowa ogólnego strumienia aktywności aplikacji
Użycie frameworka contenttypes
Dodanie do modelu relacji generycznych
Uniknięcie powielonych akcji w strumieniu aktywności
Dodanie akcji użytkownika do strumienia aktywności
Wyświetlanie strumienia aktywności
Optymalizacja kolekcji QuerySet dotyczącej powiązanych obiektów
Tworzenie szablonów dla akcji
Użycie sygnałów dla denormalizowanych zliczeń
Praca z sygnałami
Definiowanie klas konfiguracyjnych aplikacji
177
177
178
181
184
187
188
189
192
193
194
194
196
197
198
200
7
Kup książkę
Poleć książkę
Zgłoś jeśli naruszono regulamin