poprzedni temat | w górę | następny temat

Django: wstęp

Django to wysokopoziomowy framework ułatwiający tworzenie aplikacji webowych.

W chwili pisania tego tekstu najnowszą wersją Django dostępną przez pip jest 1.9.6. Jeśli w przyszłości zainstalujesz nowszą, nie wszystko musi działać tak, jak pokazano poniżej. Zajrzyj do dokumentacji, aby poznać ewentualne zmiany.

Instalacja i tworzenie projektu

virtualenv project
source project/bin/activate
pip install django
# teraz już Django jest zainstalowane

# utwórzmy projekt
django-admin startproject first

# struktura plików:
tree first
first
├── first
│   ├── __init__.py
│   ├── settings.py
│   ├── urls.py
│   └── wsgi.py
└── manage.py

# testowo uruchomimy serwer rozwojowy
python first/manage.py runserver

Teraz pod adresem http://127.0.0.1:8000/ możesz sprawdzić, co jest serwowane w ramach projektu, który utworzyłeś. Powinieneś otrzymać komunikat podobny do poniższego.

iframe src="./fresh_project.html" style="width: 100%; height: 200px;"

/iframe

Utworzenie aplikacji

Projekt składa się z jednej lub wielu aplikacji. Poniżej utworzymy pierwszą aplikację.

cd first
python manage.py startapp hello

Widoki

Każda aplikacja zawiera zbiór widoków — funkcji, które odpowiadają za generowanie odpowiedzi do przeglądarki.

Dla przykładu w aplikacji hello utworzymy widok zwracający komunikat w formie czystego tekstu (nie HTML). Zawartość pliku hello/views.py:

from django.shortcuts import render
from django.http import HttpResponse

# Create your views here.
def index(request):
  return HttpResponse("Hello world!")

Konfiguracja adresów URL

Aby widok mógł być wykorzystany, należy podać adres, pod którym będzie dostępny. Robimy to w plikach urls.py.

Przykładowy plik first/urls.py:

"""first URL Configuration

The `urlpatterns` list routes URLs to views. For more information please see:
    https://docs.djangoproject.com/en/1.9/topics/http/urls/
Examples:
Function views
    1. Add an import:  from my_app import views
    2. Add a URL to urlpatterns:  url(r'^$', views.home, name='home')
Class-based views
    1. Add an import:  from other_app.views import Home
    2. Add a URL to urlpatterns:  url(r'^$', Home.as_view(), name='home')
Including another URLconf
    1. Import the include() function: from django.conf.urls import url, include
    2. Add a URL to urlpatterns:  url(r'^blog/', include('blog.urls'))
"""
from django.conf.urls import include, url
from django.contrib import admin

urlpatterns = [
    url(r'^hello/', include('hello.urls')),
    url(r'^admin/', admin.site.urls),
]

Przykładowy plik hello/urls.py:

from django.conf.urls import url

from . import views

urlpatterns = [
    url(r'^$', views.index, name='index'),
]

Teraz pod adresem http://127.0.0.1:8000/hello/ powinien pojawić się komunikat "Hello world!".

Zadania

  1. Przeczytaj w dokumentacji, jak skonfigurować adresy URL tak, by przyjmowały parametry. Następnie utwórz widok, który będzie przyjmował dodatkowe parametry i wyświetlał ich wartość w przeglądarce.

  2. Sprawdź w dokumentacji, jak używać standardowych szablonów instalowanych z Django. Utwórz szablon HTML i wykorzystaj go w widoku z poprzedniego zadania.

poprzedni temat | w górę | następny temat