Полезный блог о django, python

инструкции, руководства для изучающих django, python

Простейщее приложение на django

Очень простое django приложение или Hello world на django.

Инициализация проекта

Итак, мы настроили виртуальное окружение, ну или обошлись без него, и теперь пора написать первое сколько нибудь функциональное приложение. Если вы уже прочитали статью про виртуальное окружение и следовали пошаговой инструкции в этой статье, то у вас уже есть заготовка проекта. Если нет, создайте её командой

django-admin.py startproject *projectName*

В результате у вас должна быть подобная структура файлов в проекте

testproject/
    ├── manage.py
    └── testproject
        ├── __init__.py
        ├── settings.py
        ├── urls.py
        └── wsgi.py

переходим в каталог проекта cd testproject теперь нужно создать приложение. Для этого используем manage.py внутри вашего проекта.

python manage.py startapp helloapp

Должна создаться папка внутри вашего проекта с именем вашего приложения

./
├── helloapp
│   ├── admin.py
│   ├── __init__.py
│   ├── migrations
│   │   └── __init__.py
│   ├── models.py
│   ├── tests.py
│   └── views.py
├── manage.py
└── testproject
    ├── __init__.py
    ├── __pycache__
    │   ├── __init__.cpython-34.pyc
    │   └── settings.cpython-34.pyc
    ├── settings.py
    ├── urls.py
    └── wsgi.py

Для активации приложения нужно отредактировать файл testproject/settings.py. Найти в нём секцию INSTALLED_APPS и дописать имя вашего приложения. Должно получиться

INSTALLED_APPS = (
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'helloapp',
)

Создание представления

Django следует парадигме Модель-Представление-Контроллер. Только в качестве представления здесь используются templates(шаблоны), а качестве контроллера views(вьюхи, представления) и urls. В нашем простейщем приложении можно обойтись без модели, так как мы ничего не будем хранить в базе данных. Также можно не заморачиваться с пока с шаблонами - для вывода Hello world они не особо нужны :) Значит займёмся урлами и вьюхами. View в django, в простейщем случае,это функция принимающая в качестве первого аргумента объект класса HttpRequest и, в ответ, возращающая объект класса HttpResponse. Местом для таких функций определён файл views.py соответствующего приложения. Создадим свой views, выводящий надпись hello World. Для этого отредактируем файл helloapp/views.py

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

def helloview(request):
    return HttpResponse("Hello world!")

Редактирование urls.py

Теперь необходимо связать определённый урл с этим представлением. Пусть наше привествие будет доступно по адресу site.com/hello. Для этого допишем testproject/urls.py

from django.conf.urls import include, url
from django.contrib import admin
from helloapp.views import helloview

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

Результат

Для того чтобы увидеть результаты необходимо запустить девелоперский сервер

python manage.py runserver

и перейти по адресу http://127.0.0.1:8000 В результате вы должны увидеть надпись Hello World

hello world