Django cwiczenia praktyczne.pdf

(244 KB) Pobierz
Django. Æwiczenia
praktyczne
Autor: Piotr Maliñski
ISBN: 978-83-246-1888-0
Format: A5, stron: 88
Wykorzystaj mo¿liwoœci Django w swoim projekcie!
• Jak zainstalowaæ Django?
• Jak skonfigurowaæ framework i dopasowaæ go do swoich potrzeb?
• Jak uruchomiæ Django na Google App Engine?
Django nie jest kolejnym frameworkiem napisanym w jêzyku PHP. To elitarne rozwi¹zanie,
wykorzystuj¹ce jêzyk Python, oparte na wzorcu projektowym MVC. Pierwotnie Django
zosta³o opracowane z myœl¹ o stronach „prasowych”, z du¿¹ iloœci¹ newsów. Pierwsza
publiczna wersja ujrza³a œwiat³o dzienne w 2005 roku. Od tego czasu Django odnotowuje
ci¹g³y wzrost popularnoœci, a wachlarz jego zastosowañ znacznie siê rozrós³!
Dziêki tej ksi¹¿ce równie¿ Ty bêdziesz móg³ wykorzystaæ ten framework w swoim
projekcie! Sprawdzona formu³a ksi¹¿ki, k³ad¹ca nacisk na æwiczenia, pozwoli Ci
b³yskawicznie opanowaæ sposób instalacji oraz stworzyæ i skonfigurowaæ Twój w³asny
projekt. Dowiesz siê tak¿e, jak obs³u¿yæ b³êdy oraz kana³y RSS czy te¿ wygenerowaæ
pliki PDF. Ponadto nauczysz siê konfigurowaæ serwery Apache 2 oraz Nginx. Æwiczenia
zawarte w tej ksi¹¿ce pozwol¹ Ci szybko i przyjemnie wdro¿yæ Django w Twoim
projekcie aplikacji WWW!
• Sposób instalacji Django
• Tworzenie nowego projektu
• Konfiguracja projektu
• Wykorzystanie panelu administracyjnego
• Mapowanie widoków
• Obs³uga formularzy
• Reagowanie na b³êdy
• Udostêpnienie kana³u RSS
• Generowanie plików PDF
• Zasady konfiguracji serwera Apache 2 z mod_python
• Konfiguracja serwera Nginx
• Przegl¹d firm oferuj¹cych hosting z obs³ug¹ Pythona
• Django i Google App Engine
Stwórz wydajn¹ i przyjemn¹ w zarz¹dzaniu witrynê WWW!
Spis tre ci
Rozdziaï 1. Wprowadzenie do Django
Django i Python
Dlaczego Django?
Django w sieci
Wymagana wiedza
Zawarto Ê ksiÈ ki
5
5
6
6
7
7
Rozdziaï 2. Instalacja Django
Rozdziaï 3. Pierwsze kroki
Rozdziaï 4. Tworzenie aplikacji
Rozdziaï 5. KsiÚga kucharska
Rozdziaï 6. Hosting aplikacji Django
Konfiguracja serwera HTTP
Hosting projektów Django
Wykorzystywanie aplikacji i kodu z projektów Django
9
13
17
47
55
55
57
59
Rozdziaï 7. Django i Google App Engine
Rozdziaï 8. PrzeglÈd projektów i serwisów
Rozdziaï 9. Serwisy po wiÚcone Django
Rozdziaï 10. Inne frameworki WWW napisane w Pythonie
61
75
79
83
5
KsiÚga kucharska
W rozdziale tym przedstawione zostanÈ ró ne rozwiÈzania,
fragmenty kodu i ciekawe aplikacje Django.
m W I C Z E N I E
5.1
Obsïuga bïÚdów
Ustawienie w
settings.py
zmiennej
DEBUG
na
False
spowoduje, e zamiast
tre ci wyjÈtków wy wietlany bÚdzie szablon
500.html,
a w przypadku
braku podstrony —
404.html.
Zazwyczaj jednak zachodzi potrzeba
obsïugi czÚ ci bïÚdów na poziomie widoków, np. gdy brakuje kate-
gorii o podanym odno niku i chcemy wy wietliÊ stosowny komunikat.
W przypadku Django, czy te w ogóle Pythona, jest to do Ê ïatwe do
zaimplementowania przy u yciu wyjÈtków. BÚdÈ one generowane przy
pobieraniu rekordu za pomocÈ metody
GET
, je eli dany obiekt nie bÚdzie
istniaï.
1.
Otwórz plik
news/views.py
i w widoku
show_news
zmieñ wiersz
pobierania wiadomo ci na
:
try:
news = News.objects.get(slug=slug)
except:
return render_to_response('error.html',
{'error': 'Strona nie istnieje'},
context_instance=RequestContext(request))
48
Django • mwiczenia praktyczne
2.
Stwórz szablon
error.html
o kodzie:
{% extends "base.html" %}
{% block main %}
{{ error }}
{% endblock %}
3.
Otwórz stronÚ z dowolnÈ wiadomo ciÈ, a nastÚpnie zmieñ jej
slug na bïÚdny.
W przypadku gdy wiadomo Ê o podanym odno niku (slug) nie bÚdzie
istniaïa, wygenerowany zostanie wyjÈtek. Przechwytujemy go za pomocÈ
try/catch
i wy wietlamy odpowiedni komunikat.
m W I C Z E N I E
5.2
Kanaïy RSS
W tym Êwiczeniu dodamy kanaï RSS dla najnowszych wiadomo ci
z wykorzystaniem komponentu
Feed
frameworka Django.
1.
W katalogu
news
stwórz plik
feeds.py
o kodzie:
# -*- coding: utf-8 -*-
from blogs.news.models import *
from django.contrib.syndication.feeds import Feed
class LatestNews(Feed):
title = 'Wiadomo ci z MOJASTRONA.pl'
link = 'MOJASTRONA.pl'
description = 'Wiadomo ci z MOJASTRONA.pl'
def items(self):
return News.objects.order_by('-id')[:15]
2.
W
urls.py
dodaj fragment kodu:
from blogs.news.feeds import *
feeds = {
'news': LatestNews,
}
3.
Dodaj reguïÚ mapowania:
(r'^rss/(?P<url>.*)/$', 'django.contrib.syndication.views.feed',
´{'feed_dict':
feeds}),
4.
W katalogu
templates
utwórz folder
feeds,
a w nim pliki
news_title.html
i
news_desription,
odpowiednio o kodzie:
{{ obj.title }}
i
{{ obj.text|safe }}
Rozdziaï 5. • KsiÚga kucharska
5.
Pod adresem
http://localhost:8000/rss/news/
dostÚpny bÚdzie
49
gotowy kanaï RSS.
Tworzenie kanaïów RSS czy te Atom za pomocÈ
Feed
polega na zde-
finiowaniu klasy zawierajÈcej opis kanaïu (
title
,
link
,
description
),
a tak e podklasy
items
okre lajÈcej listÚ rekordów do wy wietlenia.
Dodatkowo mo emy dodaÊ proste szablony, okre lajÈce, jakie pole
lub pola modelu nale y wy wietlaÊ dla pól
title
i
description
w ka-
nale RSS.
m W I C Z E N I E
5.3
Mapa sitemap
Sitemap
to plik XML zawierajÈcy listÚ stron serwisu. Sitemaps zostaïy
wymy lone przez Google i obecnie kilka wyszukiwarek u ywa ich
w celu usprawnienia indeksowania stron internetowych. Celem tego
Êwiczenia bÚdzie stworzenie mapy z wykorzystaniem elementów fra-
meworka.
1.
W
settings.py
do
INSTALLED_APPS
dodaj
'django.contrib.sitemaps'
.
2.
Otwórz plik
news/feeds.py
i dodaj fragment kodu:
from django.contrib.sitemaps import Sitemap
class NewsMap(Sitemap):
def items( self ):
return News.objects.all()
def lastmod( self, obj ):
return obj.date
def changefreq(self, obj):
return 'monthly'
3.
Otwórz plik
urls.py
i dopisz do niego kod:
sitemaps = {
'news': NewsMap,
}
4.
Dodaj do reguï mapowania wpis:
(r'^sitemap.xml$', 'django.contrib.sitemaps.views.sitemap',
´{'sitemaps':
sitemaps})
5.
Pod adresem
http://localhost:8000/sitemap.xml
znajdziesz mapÚ
sitemap dla naszej strony.
Zgłoś jeśli naruszono regulamin