Cyfroteka.pl

klikaj i czytaj online

Cyfro
Czytomierz
00343 006436 13601155 na godz. na dobę w sumie
Django. Ćwiczenia praktyczne - książka
Django. Ćwiczenia praktyczne - książka
Autor: Liczba stron: 88
Wydawca: Helion Język publikacji: polski
ISBN: 83-246-1888-0 Data wydania:
Lektor:
Kategoria: ebooki >> komputery i informatyka >> programowanie >> python - programowanie
Porównaj ceny (książka, ebook, audiobook).

Wykorzystaj możliwości Django w swoim projekcie!

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!

Stwórz wydajną i przyjemną w zarządzaniu witrynę WWW!

Znajdź podobne książki Ostatnio czytane w tej kategorii

Darmowy fragment publikacji:

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 Instalacja Django Rozdziaï 2. 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 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 5 5 6 6 7 7 9 13 17 47 55 55 57 59 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 2. Stwórz szablon error.html o kodzie: Django • mwiczenia praktyczne { 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 49 5. Pod adresem http://localhost:8000/rss/news/ dostÚpny bÚdzie 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. 50 m W I C Z E N I E 5.4 Django • mwiczenia praktyczne Generowanie plików PDF W Pythonie do generowania plików PDF moĝemy wykorzystaÊ biblio- tekÚ ReportLab (http://www.reportlab.org/rl_toolkit.html). Pakiet dla sys- temów MS Windows moĝemy pobraÊ ze strony projektu, natomiast uĝytkownicy Linuksa zapewne znajdÈ ReportLab w repozytorium dys- trybucji. Tworzenie plików PDF polega tu na rysowaniu elementów na stronie z wykorzystaniem wspóïrzÚdnych. ReportLab to narzÚdzie bardziej techniczne, sïuĝÈce, jak sama nazwa wskazuje, do genero- wania raportów, zestawieñ czy dokumentów o okreĂlonej strukturze. Jeĝeli interesuje nas konwersja kodu HTML na plik PDF w wiÚkszym zakresie, to pomóc nam moĝe biblioteka Pisa. W tym Êwiczeniu przed- stawiony zostanie prosty widok generujÈcy plik PDF dla wiadomoĂci. 1. Otwórz plik news/views.py i dodaj na poczÈtku importy: from reportlab.platypus import Table, TableStyle, Paragraph from reportlab.lib import colors from reportlab.pdfgen import canvas from reportlab.lib.pagesizes import A4 from reportlab.pdfbase import pdfmetrics from reportlab.pdfbase.ttfonts import TTFont from reportlab.lib.styles import getSampleStyleSheet from django.http import HttpResponse, HttpResponseRedirect from django.conf import settings 2. Dodaj widok generujÈcy plik PDF o kodzie: def show_news_pdf(request, slug): try: news = News.objects.get(slug=slug) except: return render_to_response( error.html , { error : Strona nie istnieje }, context_instance=RequestContext(request)) e = HttpResponse() e[ Content-Type ] = application/pdf e[ Content-Disposition ] = attachment; filename= s.pdf ; ´ news.slug c = canvas.Canvas(e, pagesize=A4) width, height = A4 pdfmetrics.registerFont(TTFont( Dejavu , settings.APP_ROOT + ´ site_media/fonts/DejaVuSans.ttf )) c.setFont( Dejavu , 14) # margines, wysokoħè, treħè Rozdziaï 5. • KsiÚga kucharska 51 c.drawString(50,(height-60), news.title) stylesheet=getSampleStyleSheet() styleN = stylesheet[ Normal ] styleN.fontName = Dejavu styleN.fontSize = 9 p = Paragraph(news.text, styleN) w,h = p.wrap(width-70, height) p.drawOn(c, 50, (height-120)) c.line(50, (70), 570, (70)) c.setFont( Dejavu , 8) c.drawString(50,(60), unicode(news.date)) c.drawString(50,(50), u Wiadomoħè ze strony ´http://www.MOJASTRONA.pl ) c.showPage() c.save() return e 3. Dodaj w pliku urls.py reguïÚ mapujÈcÈ odnoĂnik na nastÚpujÈcy widok: (r ^news/(?P slug [w-_]+)/pdf/$ , news.views.show_news_pdf ), 4. W szablonie show_news.html dodaj odnoĂnik do wersji PDF: a href= /news/{{ news.slug }}/pdf/ PDF /a 5. W pliku settings.py zdefiniuj APP_ROOT, podajÈc bezwzglÚdnÈ ĂcieĝkÚ do katalogu z projektem: APP_ROOT = ħcieľka/do/katalogu/z/projektem 6. W katalogu site_media dodaj folder fonts i umieĂÊ w nim przynajmniej jeden plik czcionki TTF (w tym przykïadzie skorzystano z czcionki Dejavu — dejavusans.ttf). 7. Zapisz wszystkie zmiany i sprawdě wersjÚ PDF dla wybranej wiadomoĂci. JeĂli chodzi o kod, zaczynamy w nim od okreĂlenia pïótna (canvas), czyli rozmiaru strony i nazwy pliku. NastÚpnie rejestrujemy czcionki, jakich chcemy uĝyÊ (podane pliki *.ttf muszÈ byÊ dostÚpne). W Report- Lab elementy umieszczane (rysowane) sÈ w miejscu (x, y) okreĂlonym w pikselach lub w innych jednostkach (cale, centymetry itd.). Dla strony A4 zmienne width i height przechowujÈ dane punktu znajdujÈcego siÚ w lewym dolnym rogu (rozmiar strony A4). Do wyĂwietlania tekstu stosujemy nieformatowany (drawString) oraz formatowany (Paragraph) 52 Django • mwiczenia praktyczne Rysunek 5.1. Plik PDF wygenerowany dla wiadomoĂci tekst. Wszystkie te elementy posiadajÈ szereg opcji odpowiedzialnych za ich wyglÈd, a szczegóïy znajdziemy w bardzo obszernej dokumen- tacji ReportLab. m W I C Z E N I E 5.5 AJAX w Django Wykorzystanie ĝÈdañ wysyïanych AJAX-em wyglÈda w Django stan- dardowo. Przesyïamy je na okreĂlony URL, a nastÚpnie do ich wykony- wania uĝywamy dowolnego frameworka JavaScript, np. jQuery, czy teĝ jakichĂ prostszych skryptów. W tym Êwiczeniu skorzystamy z prostej biblioteki ajaxroutine (http://www.dynamicdrive.com/dynamicindex17/ ajaxroutine.htm). 1. Otwórz plik news/views.py i dodaj widok: def ajax(request): return HttpResponse(unicode(datetime.now())) 2. Dodaj mapowanie w urls.py: (r ^ajax/$ , news.views.ajax ), 3. W szablonie base.html w sekcji HEAD wpisz kod: script type= text/javascript ´src= /site_media/ajaxroutine.js /script script type= text/javascript function processGetPost() { var myajax=ajaxpack.ajaxobj var myfiletype=ajaxpack.filetype Rozdziaï 5. • KsiÚga kucharska 53 if (myajax.readyState == 4) { if (myajax.status==200 || ´window.location.href.indexOf( http )==-1) { // JeĪeli coĞ zostanie zwrócone, wyĞwietl to if (myajax.responseText.length 3) { document.getElementById( aj ) ´.innerHTML= h1 + ´myajax.responseText + /h1 ; } else { // CzyĞcimy komunikat document.getElementById( aj ) ´.innerHTML= ; } } } } /script 4. W kodzie szablonu dopisz: div id= aj style= text-align:center; /div a href= # onclick= ajaxpack.getAjaxRequest( /ajax/ , , ´processGetPost, txt ) Czas przez AJAX /a Po zapisaniu zmian pojawi siÚ odnoĂnik Czas przez AJAX, który bÚdzie wysyïaï ĝÈdania AJAX-a za pomocÈ biblioteki ajaxroutine. Dodana funkcja processGetPost bÚdzie wstawiaïa otrzymane dane (to co zwróci wywoïany widok) do taga DIV o ID aj: document.getElementById( aj ).innerHTML Rysunek 5.2. ¿Èdania wysyïane za pomocÈ AJAX-a
Pobierz darmowy fragment (pdf)

Gdzie kupić całą publikację:

Django. Ćwiczenia praktyczne
Autor:

Opinie na temat publikacji:


Inne popularne pozycje z tej kategorii:


Czytaj również:


Prowadzisz stronę lub blog? Wstaw link do fragmentu tej książki i współpracuj z Cyfroteką: