Linux

Django. Создание простейшего приложения. (статья в журнале Веб-Аналитик.ИНФО, июль 2010)

В одной из прошлых статей я рассказывал достаточно подробно как установить django. Теперь же я расскажу, а зачем мы это делали. Мы попробуем сделать простейшее приложение на Django.

Что такое Django?

Django — это среда разработки вебприложений, построена на базе языка python. Свое звучное имя среда разработки получила в честь джазового гитариста Джанго Рэйнхарда.
Django исповедует принцип MVC — это когда компоненты какого-либо приложения следуют шаблону Модель-Представление-Управление. В случае приложения django за модель отвечает файл models.py, за представление — файл views.py и шаблонная система, а за управление — файл сопоставления запрашиваемого URL конкретной логике приложения.

Пишем приложение Django

Попробуем сделать в качестве примера разработки приложения — приложение, выводяшее дату на экран браузера.

Для начала нам потребуется создать новый проект. Переходим в консоль и набираем:
django-admin.py startproject testsite
Эта команда создаст новый проект и стандартные файлы в нем. Зайдя в каталог testsite мы увидим следующие файлы:
__init__.py
manage.py
settings.py
urls.py

Рассмотрим каждый файл по отдельности.

__init__.py
Служебный фай. Требуется для того, чтобы python рассматривал данный каталог как группу модулей.
manage.py
Утилита командной строки для взаимодействия с проектом.
settings.py
Настройки текущего проекта
urls.py
Описания URL-правил для текущего проекта.

Далее нужно создать новое приложение django внутри данного проекта. Мы создадим приложение currentdate.
python manage.py startapp currentdate

Эта команда создаст папку currentdate и в ней такую структуру файлов:
currentdate/
__init__.py
models.py
view.py

Я думаю, вам они уже знакомы: models.py — отвечает за описание моделей приложения, view.py — отвечает за представление моделей.

Теперь нужно исправить файл settings.py проекта — требуется добавить в него наше только что созданное приложение. Открываем файл settings.py в любимом редакторе vi ищем переменную INSTALLED_APPS и добавляем в нее еще одно приложение:
INSTALLED_APPS = (
‘django.contrib.auth’,
‘django.contrib.contenttypes’,
‘django.contrib.sessions’,
‘django.contrib.sites’,
‘testsite.currentdate’
)

Теперь нам нужно написать код функции приложения, которая будет отвечать за вывод даты на экране. Эта функция должна располагаться в приложении в файле views.py — ведь именно он отвечает за Представление. Не так ли?
Код его будет выглядеть так:
// currentdate/views.py
from django.http import HttpResponse
import datetime

def showdate(request):
return HttpResponse(datetime.date.today())

Далее требуется описать правила выдачи страницы. Мы хотим, чтобы при запросе главной страницы сайта выдавалась текущая дата.
Правила будет выглядеть так:
// urls.py
from django.conf.urls.defaults import *
from currentdate.views import showdate

urlpatterns = patterns(»,
(‘^$’, showdate),
)

Видно, что сначала нужно импортировать созданную нами функцию из представления приложения, а затем уже связать ее с главной страницей сайта.

Теперь давайте убедимся, что то что мы сделали, работает.
Набираем команду:
./manage.py runserver

Видим строки:

Validating models…
0 errors found

Django version 1.1.1, using settings ‘testsite.settings’
Development server is running at http://127.0.0.1:8000/
Quit the server with CONTROL-C.

Это означает, что ошибок в коде нет и тестовый вебсервер готов к выдаче ответов на наши запросы. В любом браузере набираем http://127.0.0.1:8000/ и видим в левом верхнем углу экрана текущую дату. Значит приложение мы создали правильно.

Что мы упустили из внимания?

Мы не использовали при разработке принцип моделей — фундаментальный принцип построения django-приложений. Также, мы не работали с шаблонами. В одной из следующих статей я обязательно приведу пример использования моделей для создания более сложного приложения.

статья опубликована в журнале Веб-Аналитик.ИНФО, (№4) июль 2010 год

Отставить комментарий

Ваш электронный адрес не будет опубликован.Обязательные для заполнения поля отмечены *

20 − 12 =