
Django jest po prostu biblioteką Pythona. Zanim zaczniesz korzystać z jej dobrodziejstw, musisz ją zainstalować. W linii komend wpisz:
pip install django
Żeby sprawdzić czy biblioteka została zainstalowana poprawnie, spróbuj ją zaimportować z konsoli. W linii komend wpisz polecenie wywołujące interpreter:
python
A potem spróbuj zaimportować bibliotekę:
import django
django.get_version()
Jeśli zobaczysz numer wersji (np. '1.10.5'), to znaczy, że Django zostało zainstalowane poprawnie. W przeciwnym wypadku spróbuj zainstalować ponownie.
Start projektu
Wróć do linii komend. Jeśli interpreter Pythona wciąż jest uruchomiony (jeśli znak zachęty na początku aktywnej linii wygląda mniej więcej tak: ">>>"), wyjdź z niego poleceniem quit() lub skrótem CTRL+D.
Czas utworzyć pierwszy projekt!
W tym celu w linii poleceń wpisz:
django-admin startproject myfirstproject
Nazwę "myfirstproject" możesz oczywiście zastąpić inną. W bieżącym katalogu powinien się pojawić nowy katalog o nazwie "myfirstproject". Jego struktura jest bardzo prosta:
myfirstwebsite/
├── manage.py
└── myfirstwebsite
├── __init__.py
├── settings.py
├── urls.py
└── wsgi.py
Mamy prosty plik manage.py oraz kolejny katalog o nazwie "myfirstwebsite", czyli dokładnie takiej samej, jak nazwa Twojego projektu. To tutaj znajdują się pliki z ustawieniami i inne, odnoszące się do całego projektu.
Uruchamianie projektu
Możesz wypróbować czy Twój projekt działa, wpisując polecenie:
python manage.py runserver
W konsoli pojawia się m.in. informacja, gdzie projekt został uruchomiony. Najprawdopodobniej będzie to adres: "http://127.0.0.1:8000/". Skopiuj go. Nie wyłączając działającego projektu, otwórz przeglądarkę i wklej w pasek adresu. Twoim oczom powinien się ukazać napis:
"It worked!
Congratulations on your first Django-powered page."
Aby wyłączyć działający serwer, użyj kombinacji klawiszy CTRL + C.
Czas na dodanie pierwszej aplikacji!
Dodawanie aplikacji
Dodanie pierwszej i każdej kolejnej aplikacji wygląda podobnie. Używamy do tego polecenia:
python manage.py startapp myfirstapp
Pamiętaj, żeby wywołać to polecenie z katalogu, w którym znajduje się plik "manage.py". Tym razem w katalogu "myfirstwebsite" pojawił się dodatkowy katalog o nazwie "myfirstapp", która jest nazwą naszej pierwszej aplikacji.
Zawartość katalogu wygląda mniej więcej tak:
myfirstwebsite/
├── manage.py
├── myfirstapp
│ ├── admin.py
│ ├── apps.py
│ ├── __init__.py
│ ├── migrations
│ │ └── __init__.py
│ ├── models.py
│ ├── tests.py
│ └── views.py
└── myfirstwebsite
├── __init__.py
├── __pycache__
│ ├── __init__.cpython-35.pyc
│ └── settings.cpython-35.pyc
├── settings.py
├── urls.py
└── wsgi.py
Zapewne chcesz zobaczyć własną treść strony startowej, zamiast wygenerowanego tekstu. Potrzebujemy do tego edycji trzech elementów: szablonu, widoku i linkowania. Ale po kolei.
Szablon
Potrzebujemy stworzyć treść strony, którą chcemy wyświetlić. W tym celu tworzymy nowy katalog "templates" w katalogu "myfirstapp", a potem kolejny katalog "myfirstapp". W nim tworzymy nasz szablon - plik o nazwie "index.html". Struktura katalogowa po utworzeniu, wygląda mniej więcej tak:
myfirstwebsite/
├── db.sqlite3
├── manage.py
├── myfirstapp
│ ├── admin.py
│
│ (...)
│
│ └── templates
│ └── myfirstapp
│ └── index.html
└── myfirstwebsite
├── __init__.py
Po co nam takie zagnieżdżenie katalogów? Jest to konwencja nazewnicza, która pomaga potem odnaleźć właściwy szablon. Jeśli umieścilibyśmy plik "index.html" bezpośrednio w katalogu "templates", szablon nie byłby rozróżnialny od innych plików "index.html" w innych aplikacjach.
Czas na dodanie kodu do naszego szablonu. Najprostszy przykład strony w kodzie HTML:
<html>
<head>
<title>My first website!</title>
</head>
<body>
<p>Simple text</p>
</body>
Widok
Czas na edycję pliku "views.py" i utworzenie naszego pierwszego widoku. Plik został automatycznie utworzony w czasie dodawania aplikacji, a teraz możemy dopisać do niego właściwą treść. Znajdziesz go w katalogu z aplikacją, czyli "myfirstapp". Pierwsze dwie linijki są już w Twoim pliku, dopisz dwie pozostałe. Funkcja "render" z biblioteki Django przyjmuje dwa argumenty. Jeden to obiekt 'request', przekazywany do samej funkcji, a drugi to nazwa naszego szablonu. Wpisujemy tu nazwę pliku index.html, który wcześniej utworzyliśmy.
from django.shortcuts import render
# Create your views heredef index(request):
return render(request, template_name="myfirstapp/index.html")
Linkowanie
Mamy gotowy szablon i widok, który pozwoli nam wyświetlać zawartość strony. Póki co nie określiliśmy jeszcze pod jakim adresem chcielibyśmy widzieć naszą stronę. W tym celu musimy edytować plik "urls.py" w katalogu z naszymi ustawieniami projektowymi, czyli "myfirstwebsite":
myfirstwebsite/
├── db.sqlite3
├── manage.py
├── myfirstapp
└── myfirstwebsite
├── __init__.py
├── settings.py
├── urls.py
└── wsgi.py
Wygenerowana wersja pliku "urls.py" zawiera już podstawową ścieżkę do panelu administracyjnego. Aby dodać ścieżkę do naszego widoku dodajemy importowanie naszej funkcji "index" oraz ścieżkę pod którą chcemy wyświetlać ten widok. W tym wypadku parametr '^$' funkcji url oznacza, że chcemy wyświetlać nasz widok na głównej stronie naszej aplikacji (czyli http://127.0.0.1:8000/). W przeciwieństwie do panelu administracyjnego, który będzie dostępny na podstronie, pod adresem http://127.0.0.1:8000/admin/.
from django.conf.urls import url
from django.contrib import admin
from myfirstapp.views import indexurlpatterns = [
url(r'^admin/', admin.site.urls),
url(r'^$', view=index),
]
Uruchamianie aplikacji
Teraz już możemy uruchomić naszą aplikację i zobaczyć jej efekt w przeglądarce. Używamy ponownie komendy:
python manage.py runserver
Otwieramy przeglądarkę i wpisujemy adres "http://127.0.0.1:8000/". Na stronie powinien się pojawić napis: "Simple text". Jeśli się pojawił - gratuluję! Masz za sobą pierwszy projekt w Django.
Co dalej?
Jeśli chcesz nauczyć się więcej o Django polecam na początek większe tutoriale, które obejmują znacznie szerszą tematykę:
Tutorial Django Girls [PL]
Tutorial w oficjalnej dokumentacji Django [EN]
Mozilla Developer tutorial [EN]
PS.
To pierwszy tutorial, który napisałam. Jeśli napotkasz na jakieś problemy lub masz jakieś uwagi - podziel się ze mną. Pozwoli mi to ulepszyć ten i przyszłe tutoriale. Dzięki!
Cześć
Trafiłem na Twojego bloga w poszukiwaniu informacji o Django i powiem szczerze ze bardzo mi sie podoba bo jest prowadzony w fajny, troszkę odmienny sposób :)
Mam skrytą nadzieje że będziesz poruszać jak najwięcej zagadnień o Djagno :)
Od dziś masz nowego i stałego bywalca na blogu.
Pozdrawiam WPK !
Dzięki :) Mam zamiar pisać więcej o Django, bo sama wciąż się uczę, ale jest to mega przyjemna nauka.
Czekam z niecierpliwością :)