Django Book PL

Szukaj w tej witrynie

Nawigacja

  • The Django Book po polsku
  • Rozdział 1. Wprowadzenie do Django
  • Rozdział 2. Pierwsze kroki
  • Rozdział 3. Podstawy dynamicznych stron WWW
  • Rozdział 4. System szablonów Django
  • Mapa witryny

Tłumacz, licencja

Autorem tłumaczenia jest Rafał Jońca. Tłumaczenie jest dostępne na tej samej licencji co oryginał - GNU Free Documentation License.

Ostatnia aktywność w witrynie

  • The Django Book po polsku
    edytowane przez: Rafał Jońca
  • Rozdział 1. Wprowadzenie do Django
    edytowane przez: Rafał Jońca
  • The Django Book po polsku
    edytowane przez: Rafał Jońca
  • Rozdział 4. System szablonów Django
    edytowane przez: Rafał Jońca
  • The Django Book po polsku
    edytowane przez: Rafał Jońca
  • View All

Rozdział 2. Pierwsze kroki

Instalacja Django to proces wieloetapowy wynikający głównie z wielu części wchodzących w skład nowoczesnego środowiska aplikacji internetowych. W tym rozdziale przeprowadzimy Cię przez proces instalacji Django wraz z kilkoma niezbędnymi zależnościami.

Ponieważ Django to po prostu kod w języku Python, działa wszędzie tam, gdzie sam Python — włączając w to nawet niektóre modele telefonów komórkowych! W rozdziale skupimy się jednak na podstawowych instalacjach w standardowych środowiskach, czyli instalacją na własnym komputerze stacjonarnym bądź laptopie oraz na serwerze.

W rozdziale 20. zajmiemy się sposobami wdrażania aplikacji Django na serwerach produkcyjnych.

Instalacja Pythona

Django zostało napisane w czystym języku Python, więc do jego uruchomienia potrzebujemy środowiska Python.

Wersje Pythona

Rdzeń frameworka Django działa z dowolną wersją Pythona od 2.3 do 2.6 włącznie. Opcjonalna obsługa GIS wymaga Pythona od 2.4 do 2.6.

Jeśli nie jesteś pewien, którą wersję Pythona zainstalować, a masz pełną swobodę wyboru, wybierz najnowsze wydanie z serii 2.x, czyli 2.6. Choć samo Django działa równie dobrze w dowolnej wersji od 2.3 do 2.6, najnowsze wersje zawierają wiele nowych funkcji języka, z których można skorzystać we własnej aplikacji, a także niejednokrotnie bywają szybsze. Również niektóre niezależne dodatki do Django mogą wymagać Pythona w wersji nowszej niż 2.3, więc stosując nowszą wersję masz większy wybór.

Django i Python 3.0

W trakcie pisania tego tekstu światło dzienne ujrzał Python 3.0, ale Django jeszcze go nie obsługuje. Python 3.0 wprowadza znaczną liczbę niezgodnych wstecz zmian do samego rdzenia języka, więc w efekcie większość głównych bibliotek i frameworków, włączając w to Django, będzie potrzebowało kilku lat, by przejść na nowszą wersję języka.

Jeśli dopiero zaczynasz swoją przygodę z Pythonem i zastanawiasz się, czy wybrać wersję 2.x lub 3.0, zalecamy na jakiś czas pozostać przy wersji 2.x.

Instalacja

Jeśli korzystasz z system operacyjnego Linux lub Mac OS X, zapewne masz już zainstalowane środowisko Pythona. Wpisz python w wierszu poleceń (lub użyj programu Applications/Utilities/Terminal w systemie Mac OS X). Jeśli zobaczysz tekst podobny do poniższego, masz zainstalowanego Pythona:

Python 2.4.1 (#2, Mar 31 2005, 00:05:10)
[GCC 3.3 20030304 (Apple Computer, Inc. build 1666)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>>

W przeciwnym razie musisz pobrać i zainstalować Pythona. Jest to szybkie i proste. Szczegółowe instrukcje znajdziesz na stronie www.python.org/download/.

Instalacja Django

W dowolnym momencie masz dostęp do dwóch różnych wersji Django: najnowszego wydania oficjalnego i wersji "trunk" ze wszystkimi nowościami. To, którą wersję zainstalujesz, powinno zależećod Twoich priorytetów. Czy chcesz stabilnego i przetestowanego pakietu Django, czy może chcesz mieć dostęp do najnowszych elementów lub współtworzyć Django, ale mieć mniejszą gwarancję stabilności?

Zalecamy stosowanie wersji oficjalnej, ale warto wiedzieć o istnieniu wersji rozwojowej nazywanej w wielu materiałach lub dokumentacji wersją "trunk".

Instalacja wydania oficjalnego

Wydania oficjalne mają numery wersji, na przykład 1.0.3 lub 1.1, a najnowsze z nich jest zawsze dostępne pod adresem www.djangoproject.com/download/. Aby je zainstalować, pobierz plik tarball, który może nosić nazwę w stylu Django-1.0.2-final.tar.gz. Następnie rozpakuj go i uruchom polecenie setup.py install, podobnie jak to ma miejsce w przypadku wielu innych bibliotek Pythona.

Oto jak może wyglądać cały proces w systemie Unix:

  1. tar xzvf Django-1.0.2-final.tar.gz
  2. cd Django-\*
  3. sudo python setup.py install

W systemie Windows zalecamy skorzystać z program 7-Zip (www.djangoproject.com/r/7zip/), by rozpakować plik z rozszerzeniem .tar.gz. Po jego rozpakowaniu uruchom konsolę z prawami administratora i wykonaj poniższe polecenie w folderze, którego nazwa rozpoczyna się od Django-:

python setup.py install

Instalacja wersji "trunk"

Najnowsza i najbardziej zaawansowana wersja deweloperska Django nosi nazwę trunk i jest dostępna w repozytorium Subversion. Powinieneś rozważyć instalację tej wersji, jeśli chcesz pracować z najnowszymi funkcjami lub chcesz rozwijać kod Django.

Subversion to bezpłatny system kontroli wersji podobny do CVS. Zespół Django używa go do zarządzania zmianami w kodzie Django. Użyj klienta Subversion, by pobrać najnowszą wersję kodu źródłowego Django. Następnie w dowolnym momencie możesz zaktualizować lokalną wersję kodu Django nazywaną lokalną kopią, by uzyskać dostęp do najświeższych poprawek.

Stosując wersję trunk, pamiętaj, że nie daje ona żadnej gwarancji, że wszystko będzie działało zgodnie z oczekiwaniami. Ponieważ jednak duża część zespołu Django korzysta z wersji trunk na systemach produkcyjnych, dokłada wszelkich starań, by była ona stabilna.

Aby obrać najnowszą wersję trunk, wykonaj poniższe kroki:

  1. Upewnij się, że posiadasz zainstalowanego klienta Subversion. Oprogramowanie możesz pobrać subversion.tigris.org/, a doskonałą dokumentację w wersji angielskiej znajdziesz na svnbook.red-bean.com/.
  2. Pobierz wersję trunk poleceniem svn co code.djangoproject.com/svn/django/trunk djtrunk.
  3. Utwórz plik site-packages/django.pth i dodaj do niego folder djtrunk lub też uaktualnij zmienną środowiskową PYTHONPATH, by wskazywała na djtrunk.
  4. Umieść djtrunk/django/bin na ścieżce systemowej PATH. Folder ten zawiera narzędzia pomocnicze takie jak django-admin.py.

Wskazówka

Jeśli wcześniej nie korzystałeś z plików .pth, więcej informacji na ich temat znajdziesz w www.djangoproject.com/r/python/site-module/.

Po pobraniu Subversion i wykonaniu zaprezentowanej procedury, nie musisz uruchamiać polecenia python setup.py install — wszystkie niezbędne kroki wykonałeś ręcznie!

Ponieważ zmiany w wersji trunk zachodzą dosyć często i zawierają różnorakie poprawki lub udoskonalenia, warto aktualizować od czasu do czasu własną kopię. Aby uaktualnić kod, wykonaj polecenie svn update, gdy znajdujesz się wewnątrz folderu djtrunk. Wykonując je, wymusisz na Subversion skontaktowanie się z code.djangoproject.com w celu sprawdzenia i pobrania wszelkich zmian wprowadzonych od momentu poprzedniej aktualizacji. To szybka i prosta operacja.

Jeśli korzystasz z wersji trunk, dobrze wiedzieć, której dokładnie wersji trunk używasz. Jest to często niezbędna informacja, by uzyskać konkretną pomoc od społeczności lub przesłać udoskonalenia. Wersja trunk nazywana również "numerem rewizji" lub "zestawem zmian" zostanie wyświetlona po wpisaniu polecenia svn info w folderze djtrunk (w wyświetlonych danych poszukaj wartości liczbowej obok wyrazu "Revision:". Wartość zwiększa się wraz z każdą zmianą wprowadzoną w Django, niezależnie od tego, czy jest to poprawka błędu, nowa funkcjonalność czy udoskonalenie dokumentacji. Niektóre osoby w społeczności Django chwalą się nawet, że używają Django od rewizji [tu wstaw bardzo mały numer rewizji].

Test poprawności instalacji

Poświęć chwilę czasu, by przekonać się czy instalacja Django zakończyła się powodzeniem. W wierszu poleceń zmień folder na inny (czyli inny niż folder zawierający Django) i uruchom interaktywny interpreter Pythona, wpisując python. Jeśli instalacja powiodła się, powinieneś bez problemów zaimportować moduł django:

>>> import django

>>> django.VERSION
(1, 1, 0, 'alpha', 0)

Uwaga

Interaktywny interpreter Pythona to program wiersza poleceń, który umożliwia interaktywne pisanie program w języku Python. Aby go uruchomić, wpisz w wierszu poleceń python.

W dalszej części książki różne przykłady kodu w języku Python są napisane w stylu przypominającym interaktywny interpreter. Szukaj trzech znaków większy od (>>>`), które oznaczają znak zachęty interpretera Pythona. Stosujemy ten format, jeśli chcemy wyświetlić wynik wykonania określonego polecenia Pythona.

Konfiguracja bazy danych

W tym momencie mógłbyś rozpocząć tworzenie aplikacji internetowych w Django, ponieważ jedynym wymogiem dla Django jest działające środowisk Pythona. Z dużą dozą prawdopodobieństwa możemy jednak stwierdzić, że tworzona aplikacja będzie korzystała z bazy danych, więc trzeba jeszcze skonfigurować serwer bazy danych.

Jeśli chcesz od razu przetestować prosty projekt Django, pomiń tę część i przejdź od razu do punktu "Tworzenie projektu" — pamiętaj jednak, że większość przykładów znajdujących się w książce zakłada stosowanie bazy danych.

Django współpracuje z czterema systemami baz danych:

  • PostgreSQL (www.postgresql.org/)
  • SQLite 3 (www.sqlite.org/)
  • MySQL (www.mysql.com/)
  • Oracle (www.oracle.com/)

W większości sytuacji wszystkie systemy działają równie dobrze dla całego głównego kodu Django. (W zasadzie jedynym wyjątkiem jest opcjonalna obsługa GIS, która jest znacznie bardziej zaawansowana dla bazy danych PostgreSQL niż dla pozostałych). Jeśli nie jesteś przywiązany do istniejącego systemu i masz swobodę wyboru systemu bazodanowego, zalecamy PostgreSQL, który stanowi doskonałą równowagę między kosztem, funkcjonalnością, szybkością i stabilnością.

Konfiguracja obsługi bazy danych jest procesem dwuetapowym:

  • Najpierw należy zainstalować i skonfigurować sam serwer bazy danych. Opis tego procesu wykracza poza tę książkę, ale każdy z systemów bazodanowych na własnych witrynach internetowych dobrze opisuje całą konfigurację. (Jeśli korzystasz ze współdzielonego serwera WWW, istnieją bardzo duże szanse, że baza danych jest już skonfigurowana).
  • Następnie trzeba zainstalować bibliotekę Pythona dla danej bazy danych. To dodatkowy, zewnętrzny kod, który umożliwia Pythonowi komunikację z bazą danych. W następnych podpunktach dokładnie opisujemy wymagania dotyczące dodatkowych bibliotek dla poszczególnych systemów bazodanowych.

Jeśli chcesz tylko pobawić się Django i nie chcesz instalować osobnego serwera bazodanowego, rozważ użycie SQLite. SQLite to unikatowe rozwiązanie na liście dostępnych baz danych, gdyż nie wymaga żadnych dodatkowych kroków, jeśli używasz Pythona 2.5 lub nowszego. System ten odczytuje i zapisuje wszystkie dane z jednego pliku w systemie plików. Python 2.5 lub nowszy zawiera wbudowaną obsługę tego systemu.

W systemie Windows uzyskanie dostępu do binarnych wersji sterowników bazy danych nie zawsze jest łatwe. Jeśli chcesz szybko rozpocząć testy, zalecamy Pythona 2.5 lub nowszego oraz jego wbudowaną obsługę SQLite.

Django i PostgreSQL

Jeśli używasz PostgreSQL, musisz zainstalować pakiet psycopg lub psycopg2 z www.djangoproject.com/r/python-pgsql/. Zalecamy psycopg2, ponieważ jest nowszy, bardziej aktywnie rozwijany i łatwiejszy w instalacji. Niezależnie od wyboru, zapamiętaj zainstalowaną wersję, gdyż będziesz potrzebował tej informacji w trakcie konfiguracji.

Jeśli używasz PostgreSQL w systemie Windows, skompilowane biblioteki znajdziesz pod adresem www.djangoproject.com/r/python-pgsql/windows/.

Jeśli używasz systemu Linux, sprawdź, czy system pakietów dystrybucji nie oferuje pakietów nazwanych "python-psycopg2", "psycopg2-python", "python-postgresql" lub podobnie.

Django i SQLite 3

Jeśli korzystasz z Pythona 2.5 lub nowszego, masz szczęście: nie musisz niczego dodatkowego instalować, bo python zawiera już wbudowaną obsługę SQLite. W tej sytuacji przejdź do następnego punktu.

Jeśli używasz Pythona 2.4 lub starszego, potrzebujesz SQLite 3 — nie wersję 2 — z www.djangoproject.com/r/sqlite/ oraz pakiet pysqlite dostępny z www.djangoproject.com/r/python-sqlite/. Upewnij się, że używasz pysqlite w wersji 2.0.3 lub nowszej.

W systemie Windows możesz pominąć pierwszy krok (osobną bibliotekę binarną SQLite), ponieważ jest ona dołączona statycznie do skompilowanej biblioteki pysqlite.

W systemie Linux sprawdź, czy system pakietów dystrybucji nie oferuje pakietów nazwanych "python-sqlite3", "sqlite-python", "pysqlite" lub podobnie.

Django i MySQL

Django wymaga MySQL 4.0 lub nowszego. Wersje 3.x nie obsługują zagnieżdżonych podzapytań oraz kilku innych dosyć standardowych poleceń SQL.

Musisz również zainstalować pakiet MySQLdb dostępny pod adresem www.djangoproject.com/r/python-mysql/.

W systemie Linux sprawdź, czy system pakietów dystrybucji nie oferuje pakietów nazwanych "python-mysql", "python-mysqldb", "mysql-python" lub podobnie.

Django bez bazy danych

Jak wcześniej wspomnieliśmy, Django nie wymaga korzystania z bazy danych. Jeśli chcesz generować dynamiczne strony WWW, które nie używają bazy danych, możesz to zrobić.

Pamiętaj jednakże, że wiele dodatkowych narzędzi i aplikacji dołączonych do Django wymaga bazy danych, więc brak bazy danych wyklucza ich użycie. (W książce jawnie wskażemy, które elementy wymagają bazy danych).

Tworzenie projektu

Po zainstalowaniu Pythona, Django i (opcjonalnie) serwera bazy danych z biblioteką dla Pythona możemy wykonać pierwszy krok w kierunku utworzenia aplikacji Django, generując szablon projektu.

Projekt to zestaw ustawień dla instancji Django zawierający konfigurację bazy danych, opcje specyficzne dla Django oraz ustawienia specyficzne dla aplikacji.

Jeżeli to Twoja pierwsza styczność z Django, powinieneś zatroszczyć się o ustawienia początkowe. Utwórz nowy folder, w którym chcesz przechowywać projekty, na przykład /home/użytkownik/djcode/.

Gdzie powinienem umieścić ten folder?

Jeśli dawniej korzystałeś z języka PHP, zapewne z przyzwyczajenia chciałbyś ten folder umieścić folderze dostępnym dla serwera WWW (na przykład /var/www). W Django nie jest to zalecane. Nie umieszczaj jakiegokolwiek kodu w języku Python w folderze udostępnianym przez serwer WWW, ponieważ wtedy ryzykujesz, że inne osoby będą mogły podejrzeć kod źródłowy Twojej witryny. Nie jest to dobre rozwiązanie.

Umieść kod w folderze poza ścieżką udostępnianą przez serwer WWW.

Przejdź do utworzonego folderu i wykonaj polecenie django-admin.py startproject mysite, by utworzyć folder mysite wewnątrz aktualnego folderu.

Uwaga

Plik django-admin.py powinien znajdować się na ścieżce systemowej, jeśli zainstalowałeś Django za pomocą narzędzia setup.py.

Jeśli korzystasz z wersji trunk, plik django-admin.py znajdziesz w folderze djtrunk/django/bin. Ponieważ z pliku korzysta się stosunkowo często, rozważ dodanie go do ścieżki systemowej. W systemie Unix możesz to zrobić, tworząc dowiązanie symboliczne wewnątrz folderu /usr/local/bin, wywołując polecenie sudo ln -s /path/to/django/bin/django-admin.py /usr/local/bin/django-admin.py. W systemie Windows musisz uaktualnić zmienną środowiskową PATH.

Jeśli w trakcie uruchamiania polecenia django-admin.py startproject pojawi się komunikat o braku uprawnień, zmień uprawnienia pliku. W tym celu przejdź do folderu, w którym znajduje się plik django-admin.py (np. cd /usr/local/bin) i wykonaj polecenie chmod +x django-admin.py.

Polecenie startproject tworzy folder zawierający cztery pliki:

mysite/
    __init__.py
    manage.py
    settings.py
    urls.py

Oto znaczenie poszczególnych plików:

  • __init__.py – plik wymagany przez Pythona, by traktował folder mysite jako pakiet (czyli grupę modułów). Plik jest pusty i najczęściej nie trzeba go w żaden sposób edytować.
  • manage.py – narzędzie wiersza poleceń, które umożliwia interakcję z projektem Django na wiele sposób. Wykonaj polecenie python manage.py help, by przekonać się, jakie są jego możliwości. W zasadzie nigdy nie powinienieś mieć potrzeby edytowania tego pliku; jest tworzone, by ułatwić korzystanie z projektu.
  • settings.py – ustawienia i konfiguracja dla projektu Django. Zajrzyj do pliku, by przekonać się, jakiego rodzaju ustawienia są dostępne i jakie są ich domyślne wartości.
  • urls.py – główny plik odwzorowania adresów URL dla projektu. Traktuj go jako "spis treści" dla aplikacji Django. Na tę chwilę jest pusty.

Pomimo swego niewielkiego rozmiaru, pliki te zapewniają działającą wersję aplikacji Django.

Uruchomienie serwera deweloperskiego

Aby jeszcze dokładniej przetestować instalację, uruchommy deweloperską wersję serwera Django, by zobaczyć w akcji wykonany przed chwilą szkielet projektu.

Serwer deweloperski Django (nazywany również serwerem runserver z racji polecenia, które go uruchamia) jest wbudowanym, lekkim serwerem WWW, z którego można korzystać w trakcie prac nad aplikacją. Jest dołączony do Django, więc można zacząć szybko tworzyć aplikację bez potrzeby konfiguracji serwera produkcyjnego (np. Apache) już na samym początku prac. Serwer deweloperski śledzi zmiany w kodzie i automatycznie przeładowuje się, gdy one nastąpią, więc wystarczy skupić się na kodzie.

Aby uruchomić serwer, przejdź do folderu z projektem (cd mysite), jeśli jeszcze tego nie zrobiłeś, i wykonaj polecenie:

python manage.py runserver

Powinieneś zauważyć następujący wynik:

Validating models...
0 errors found.

Django version 1.0, using settings 'mysite.settings'
Development server is running at 127.0.0.1:8000/
Quit the server with CONTROL-C.

Polecenie spowodowało uruchomienie serwera lokalnie na porcie 8000 w taki sposób, że jest on dostępny tylko z Twojego komputera. Po uruchomieniu odwiedź adres 127.0.0.1:8000/ w przeglądarce internetowej. Powinieneś zobaczyć stronę powitalną projektu w przyjemnym, pastelowym niebieskim kolorze. Wszystko działa!

Ostatnia, istotna uwaga na temat serwera deweloperskiego. Choć serwer ten jest bardzo wygodny w trakcie programowania, oprzyj się chęci stosowania go w czymkolwiek co chociaż przypomina środowisko produkcyjne. Serwer deweloperski potrafi w danym momencie obsłużyć tylko jedno żądanie i nie przechodził żadnych audytów dotyczących bezpieczeństwa. Jeśli witryna jest gotowa do upublicznienia, zajrzyj do rozdziału 20., by dowiedzieć się, jak wdrożyć aplikację Django na serwerach produkcyjnych.

Zmiana hosta i portu serwera deweloperskiego

Domyślnie polecenie runserver uruchamia serwer na porcie 8000 i nasłuchuje tylko lokalnych połączeń. Jeśli chcesz zmienić port, przekaż go jako argument wiersza poleceń:

python manage.py runserver 8080

Podając adres IP, informujesz o chęci obsługi połączeń zewnętrznych. Jest to szczególnie użyteczne, gdy chcesz własne zmiany zaprezentować innym członkom zespołu. Adres IP równy 0.0.0.0 powoduje nasłuchiwanie połączeń na wszystkich interfejsach sieciowych:

python manage.py runserver 0.0.0.0:8000

Gdy zastosujesz ten parameter, inne komputery w Twojej lokalnej sieci będą mogły zobaczyć uruchomioną witrynę Django po wpisaniu adresu IP Twojego komputera w przeglądarce internetowej, np. 192.168.1.103:8000/ . (Aby poznać swój adres IP, sprawdź ustawienia sieci. W systemie Unix spróbuj wykonać polecenie ifconfig, by uzyskać szczegółowe informacje o interfejsach sieciowych).

Co dalej?

Po zainstalowaniu wszystkich komponentów i sprawdzeniu serwera deweloperskiego, możesz rozpocząć poznawanie podstaw serwowania stron WWW za pomocą Django.

Sign in|Report Abuse|Print Page|Remove Access|Powered By Google Sites

gipoco.com is neither affiliated with the authors of this page nor responsible for its contents. This is a safe-cache copy of the original web site.