Часть 4. Python/Django и Hello World. Структура проекта Django и создание приложений

Цикл статей «Django шаг за шагом»

Информация, которая будет дана в данном посте, исходя из заголовка, будет актуальная для версий Django 1.9.x и Python 3.4.x, что будут соответствовать последним версиям на момент написания поста. Для проверки версии Django — фреймворка существует замечательная команда:

python -c "import django; print(django.get_version())"

В мире так принято, что перед делом, надо знать, что делаешь и подходить нужно со знанием дела и, поэтому, это тот самый момент, когда пора понимать основу структуры проекта на Django. И, как уже отмечали, проект на Django — целое, которое составлено из отдельных частей(приложений, модулей, пакетов и т.п.), что дает ему гибкость в работе и продуктивность в использовании кода, соответственно. Создав проект мы должны, далее, уже создать приложения, которые будут выполнять в проекте ту или иную функцию.

Перед тем, как добавить новое приложение к проекту мы должны проделать шаги из серии прошлых частей постов, а именно:

  • установить интерпретатор Python;
  • установить менеджер пакетов pip;
  • установить модуль создания виртуальных  сред virtualenv через менеджера пакетов pip, что поможет нам управлять проектом находясь в UNIX — подобной среде;
  • создать виртуальную среду (например, test) и активировать его;
  • установить фреймворк Django через менеджера пакетов pip из активированной виртуальной среды;
  • создать новый проект(например, mysite) в текущей виртуальной среде.

Итак, проект под названием mysite у нас есть, осталось только добавить приложения к этому проекту. Но, перед этим, нужно разобраться со структурой. На данный момент, структура пустого проекта такова

django-proj-structure-for-post

По порядку разберем каждую папку и файл начального проекта, который не содержит приложений:

  • Внешняя папка mysite/ — эта директория является корневой папкой нашего сайта и просто контейнером, где будут создаваться наши приложения и файлы для управления проектом. Название данной директории ничего не значит для Django и его можно поменять на свое усмотрение;
  • manage.py — инструмент управления из командной строки при помощи которого можно управлять проектом различными путями. В частности, при помощи данного инструмента запускается наш проект на сервере Python. Про этот инструмент можно почитать дополнительно вот тут;
  • внутренняя директория mysite/ — это текущий и единственный, на данный момент, пакет Python в нашем проекте. Имя данного пакета. в дальнейшем, будет использовано для импорта внутренней структуры кода, к примеру, для импорта mysite.urls;
  • mysite/__init__.py — этот пустой файл предназначен для указания и регистрации пакетов. Наличие данного файла в директории mysite/ говорит Python, чтобы он различал эту директорию в виде пакета. Дополнительно об этом можно почитать тут;
  • mysite/settings.py — это файл установок и конфигурации текущего проекта Django;
  • mysite/urls.py — это URL — декларации текущего Django — проекта или, иначе говоря,“таблица контента” вашего Django-проекта. Дополнительно об этом можно почитать тут;
  • mysite/wsgi.py — точки входа для WSGI-совместимого веб-сервера. Подробно об этом тут.

После того, как разобрали начальную структуру пустого проекта, давайте создадим какое-нибудь(например, блог) приложение через команду:


python manage.py startapp blog 

После выполнения данной команды в корневой папке проекта появится новая директория blog/, которая будет содержать свой список файлов

django-proj-app-structure-for-post

Раскроем суть каждой папки и файла в приложении:

  • migrations/ — папка, в которой будут храниться миграции базы данных;
  • _init_.py — указание Python, чтобы он обработал папку приложения в виде пакета проекта;
  • admin.py — здесь хранятся настройки стандартной административной панели;
  • models.py — файл, в котором будут модели приложения;
  • test.py — песочница юнит-тестов;
  • views.py — файл для хранения видов.

Суть структуры приложения проекта на Django сводится к тому, что оно работает частично по образу MVC, но существенно отличается от этой модели хотябы потому, что контроллеры в MVC — это URL  Django.

Часть 3. Python/Django и Hello World. Настройка быстрого запуска проектов в виртуальных средах через обертки разделения под OS Windows.

Цикл статей «Django шаг за шагом»

После того, когда мы уже создали и запустили тестовый проект Python/Django под ОС Windows, то нам необходимо сделать несколько операций по упрощению управления и переключения между проектами через командную строку, чтобы не писать лишний раз однотипные команды. И тут мы подходим к стадию изучения оберток виртуальной среды для разделения проектов и быстрого их запуска.

Установка инструмента обертки виртуальной среды

Для установки инструмента виртуальной обертки заходим в папку пользователя, у меня это C:/Users/WebSofter, и запускаем команду установки:

pip install virtualenvwrapper-win

Далее проследует процесс установки и после установки надо создать новую переменную в переменных средах пользователя в виде WORKON со значением пути %USERPROFILE%\Envs, где Envs — это папка хранения для всех, создаваемых виртуальных сред
python-create-virt-param-wrapper-WORKON

Отныне, для создания виртуальной среды достаточно из любого места набрать команду:

mkvirtualenv MyEnv

где MyEnv — это название новой среды. При создании виртуальной среды они автоматически создаются в папке C:\WebSofter\Envs. А для деактивации текущей виртуальной среды достаточно набрать из любого места команду:

deactivate

А для переключения активации той или иной среды достаточно набрать команду:

WORKON MyEnv

где MyEnv — активируемая среда.
На этом установка и настройка оберток виртуальной среды окончено.

Часть 2. Python/Django и Hello World. Настройка администрирования тестового проекта Python/Django под OS Windows.

Цикл статей «Django шаг за шагом»

Для того, чтобы полноценно понимать как устроена модель MVC/MTV -модель фреймворка Django для нас будет очень полезно понимать как создаются модели, виды и шаблоны. Чтобы сделать такую тестовую страницу, где есть и модель и вид и контроллер в фреймворке Django есть встроенная система создания администраторов системы, по простому счету, это обычная панель администратора сайта. В данной статье проведем операции создания нового администратора и создадим базу данных для хранения администраторов. По умолчанию, Django работает с локальной БД SQLite, этого достаточно для мелких проектов, но если требует создавать большую базу данных с большим количеством запросов, то потребуется установить MySQL или PostgreSQL или что-то еще посерьезнее. При установке Django — исходников проекта БД SQLite создается автоматически и нам остается только создать суперпользователя через командную строку и войти через панель управления сайта

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

Для создания суперпользователя, останавливаем работу сервера, заходим в корневую папку нашего проекта(в прошлой части мы создали тестовый проект mathzilla,  с ним и будем работать) и выполняем следующие команды:

python manage.py migrate
python manage.py createsuperuser

Заполняем регистрационные данные и далее запустим наш сервер:

python manage.py runserver

python-create-django-site-superuser

Далее переходим по ссылке

http://127.0.0.1:8000/admin/

и заполняем данные, которые мы установили в настройках суперпользователя на этапе создания суперпользователя — логин и пароль и увидим панель управления
python-page-of-admin-panelНа этом настройка и создание суперпользователя сайта на Python/Django под Windows закончено.

Часть 1. Python/Django и Hello World. Запуск тестового сайта на Python/Django под OS Windows.

Цикл статей «Django шаг за шагом»

Django — это MVC/MTV — фреймворк, написанный на языке Python,  а Python — высокоуровневый язык для всех повседневных задач на любой платформе и имеет интерпретаторы для всех известных ОС, есть даже реализация для запуска поверх Java — машины, которая именуется , как Jython.

О чем будет статья?

В статье затронем моменты установки интерпретатора Python 3.x и Django на Windows, в целях запуска тестового сайта на Python на ОС Windows. Обычно, при разработке проекта приходиться писать код на десктопе, чем и служит для нас Windows, а конечный вариант грузить на сервер, где правит только командная строка Linux — системы.

Установка Python и PIP на Windows

Для установки переходим на официальный сайт разработчика. Наводим курсором на раздел «Downloads» и видим всплывающее табло

get-python-version-3

На момент написания данной статьи поддерживаются 2 версии языка — 2.x и 3.x. Так как на версии 2.x написано очень много проектов и версии языка отличаются друг от друга кардинально, то поддерживаются обе версии, но в новых проектах предпочтительнее использовать последнюю версию языка — 3.x. Загружаем и кликаем для установки. Установка Python 3.x идет стандартным образом

install-py-step-1

На начальном этапе установки необходимо указать, что мы хотим добавить нашу программу в переменную среду Windows, чтобы выполнять команды Python через командную строку. Если данный пункт отсутствует на интсалляторе, то придется добавить вручную через панель настроек Windows, прописав через «;» путь установки Python для переменной PATH. Инсталлятор предлагает по умолчанию установить Python в папку пользователя системы. Нажмем пользовательский режим, оставляем все, как есть и принимаем во внимание, что pip устанавливается в процессе инсталляции Python и если в инсталляторе его нет, придется установить после установки Python.

pip — это один из инструментов Python, который предназначен для загрузки и установки дополнительных пакетов Python. В дальнейщем он нам нужен будет для загрузки и запуска Django

install-py-step-2

Жмем «Next» и меняем место установки. Можно установить в любое удобное место — все на вкус и удобство пользователя. Жмем «Install» и заканчиваем установку.

install-py-step-3

Если в командной строке выскакивает сообщение, что есть более новая версия pip и, вместе с инсталлятором установилась старая версия, то проблему решит апгрейд pip через команду:

python -m pip install -U pip

Если pip не установлен при инсталляции, то давайте разберем другой способ установки pip. Другой способ установки инструмента pip — скачиваем этот инструмент get-pip.py с официального сайта и запускаем этот файл через командную строку

python get-pip.py

После установки надо добавить переменную C:\PythonServer\Lib\site-packages\django\bin в PATH к уже имеющимся переменным Python, которые были добавлены автоматически инсталлятором

django-bin-in-path

Установка Django в виртуальной среде Windows

После того, как Python и pip установлены и настроены переменные среды, необходимо установить пакеты Django. Есть несколько способов установки Django. В данной статье будем пользоваться рекомендованным методом установки официального релиза Django.

Ниже показан рекомендованный метод установки Django от разработчиков этого фреймворка:

  1. Установка через pip. Так как pip был установлен через автономный инсталлятор, то необходимо проверить на то, что он имеет последнюю, актуальную версию, иначе это может быть причиной сбоя установки.
  2. Использование virtualenv и virtualenvwrapper. Эти инструменты предоставляют изолированные среды Python, которые являются более практичными, чем устанавливаемые пакеты в системе. Они , также, позволяют устанавливать пакеты без привилегий администратора. Здесь дополнительная информация по созданию и использованию virtualenv на Python 3.
  3. После создания и активации виртуальной среды, нужно установить Django через команду
pip install Django

Теперь необходимо выполнить каждый из вышеизложенных шагов последовательно.

  1. Так как pip был у нас установлен в процессе инсталляции, то пропускаем этот шаг.
  2. Устанавливаем виртуальную среду через установщик pip при помощи последовательности команд:
    pip freeze
    pip install virtualenv

    и проверяем версию установленного virtualenv:

    pip freeze

    python-inst-virt-env

  3. Итак, в предыдущем шаге мы установили инструмент для создания виртуальных сред Python. Настал момент создания виртуальной среды. Виртуальную среду можно создать в любом месте. Для нашего примера создадим в корневой папке Python C:\PythonServer\  новую папку Environments, в которой будут создаваться наши новые среды. Теперь в этой папке создадим новую виртуальную среду под названием «sites» и для этого, через командную строку заходим в папку C:\PythonServer\Environments и выполняем команду:
    virtualenv sites

    И после того, когда виртуальная среда создана, через командную строку заходим в папку созданной виртуальной среды:

    cd sites

    и активируем эту среду при помощи команды:

    .\Scripts\activate

    и выполняем команду:

    pip freeze

    которая вернет версию скрипта
    python-create-virt-env
    Для деактивации текущей среды или выхода из текущей среды необходимо, из папки текущей среды, выполнить команду:

    .\Scripts\deactivate

     

  4. После того, как создали виртуальную среду и активировали нам необходимо установить в эту виртуальную среду фреймворк Django:
    pip install django

    Далее заходим в папку нашей среды и устанавливаем через .\Scripts\django-admin.py исходники нашего проекта через команду:

    pip freeze
    python .\Scripts\django-admin.py

    или то же самое можно сделать через команду, которая работает через виртуальную среду:

    django-admin startproject mathzilla

    где mathzilla — это название моего проекта. После выполнения этой команды в корневой папке нашей среды sites будет создана новая папка mathzilla с исходниками нашего начального проекта и осталось его запустить.
    В Django, внутри проекта может содержаться приложения и по сути дела, любой проект Django — это сборка мелких отдельных приложений, которые, как кирпичики служат для всей работоспособной системы. Для создания приложения внутри проекта необходимо зайти внутрь папки проекта и запустить команду:

    pip freeze
    python .\Scripts\django-admin.py

    или, то же самое можно сделать командой:

    django-admin startapp myapp

    Для запуска проекта переходим в папку нашего проекта выполняем команду запуска сервера при помощи файла manage.py:

    cd mathzilla
    python manage.py runserver

    python-inst-django-run-server
    и пойдет процесс запуска сервера с указанием локальной ссылки и порта, по которому у нас доступен наш тестовый сайт на Django. В моем случае сервер запустился по ссылке:

    http://127.0.0.1:8000/

    python-runned-django-project

На этом установка Python и тестового сервера с Django завершена.