Российский Новый Университет
Опубликован: 25.01.2016 | Доступ: свободный | Студентов: 2234 / 161 | Длительность: 16:40:00
Лекция 3:

Стиль кодирования в Django

< Лекция 2 || Лекция 3: 12345 || Лекция 4 >

Структура проекта Django

Структура проекта Django изменилась начиная с вышедшей версии 1.6. Django (Django-admin.py) так же имеет команду startapp для создания приложение. Сейчас самое время объяснить разницу между приложением и проектом Django.

Проект – законченный веб-сайт или приложение, где приложение — это автономное Django-приложение. Приложение основано на принципе, что это должна быть единая вещь и она должна работать.

Дабы облегчить боль разработки проекта на Django с нуля, Django предоставляет возможность автогенерации файлов базовой структуры проекта из какого-либо еще проекта для того, чтобы продвинуть вперед разработку и добавление возможностей.

Таким образом, мы можем сказать, что проект – это собрание приложений, а приложение может быть написано, как отдельная сущность и может быть легко импортирована в проект.

Для создания вашего первого проекта Django, откройте терминал (или командная строка у Windows пользователей; для запуска выполните: Пуск| Выполнить| cmd ) и наберите следующую команду. Затем, нажмите Enter.

$ django-admin.py startproject django_mytweets

Эта команда создает папку с именем django_mytweets в текущем каталоге и создает начальную структуру внутри нее. Посмотрим, что за файлы создались.

Новая структура выглядит следующим образом:

django_mytweets//
/django_mytweets/ 
manage.py

Это содержимое папки django_mytweets/:

django_mytweets/
init .py
settings.py
urls.py
wsgi.py

Вот краткое объяснение, что это за файлы:

  • django_mytweets (внешняя папка): Это каталог проекта. В отличие от каталога ранее рассмотренного проекта, в которой был представлен полный проект в одном каталоге, структура нового проекта Django как бы подсказывает, что каждый проект – это приложение внутри Django.

    Это также означает, что вы можете импортировать сторонние приложения на уровне Django проекта. Этот каталог содержит так же файл manage.py, который содержит так же все настройки проекта.

  • manage.py: Это служебный скрипт, используется для управления нашим проектом. Вы можете подумать, что это версия файла django-admin.py в вашем проекте. Действительно, оба этих файла, manage.py и django-admin.py делят один и то же код.

    Дополнительные разъяснения о настройках будут даны, когда мы приступим к изменению настроек.

    Давайте взглянем на содержимое файла manage.py:

    #!/usr/bin/env python import os import sys
    if  _name_ == " _main_ ":
    os.environ.setdefault("DJANGO_SETTINGS_MODULE", 
    "django_ mytweets.settings")
    from django.core.management import execute
    from_command_line execute_from_command_line(sys.argv)
    

    Исходный код файла будет очевидно понятен после того, как вы прочитаете нижеследующее объяснение кода.

    #!/usr/bin/env python

    В первой строке дается объявление того, что это файл исходного кода на языке Python, далее располагается секция импорта модулей os и sys. Эти модули содержат в основном системные операции.

    import os
    import sys 
    

    Следующая часть кода проверяет, является ли файл исполняемым из функции main, которая является первой исполняемой функцией, а затем загружает модуль настроек Django по текущему пути. Так как вы запустили виртуальное окружение, пути всех модулей установятся для данного виртуального окружения.

    if  name == " _main_" :
    os.environ.setdefault("DJANGO_SETTINGS_MODULE",
    "django_mytweets.settings") 
             django_mytweets/ ( Inner folder)
    _ init_.py
    
  • settings.py: Это основной конфигурационный файл для вашего проекта Django. В нем вы можете отметить множество настроек, включая настройки базы данных, языка(ов) сайта, какие особенности Django необходимо задействовать и так далее. Некоторые разделы этого файла мы объясним по мере построения нашего приложения, в следующих главах.

    По умолчанию, база данных настроена на использование базы данных SQLite, которая рекомендуется для тестовых целей. Здесь мы только увидим, как входить в нашу базу данных; также здесь содержатся основные настройки конфигурации, и немного изменив файл manage.py, его можно переместить в другую папку, такую как config или conf.

    Чтобы сделать стороннее приложение частью проекта, нужно зарегистрировать его в файле settings.py. Все записи об установленном приложении содержатся в переменной INSTALLED_APPS. По мере разрастания приложения. Им становится трудно управлять; есть три раздела в переменной INSTALLED_APPS, а именно:

    • DELAULT_APPS: Этот параметр содержит установленные по умолчанию приложения Django (такие как admin)
    • THIRD_PARTY_APPS: Этот параметр содержит другие приложения, такие как SocialAuth, используемые для аутентификации в социальных сетях.
    • LOCAL_APPS: Этот параметр содержит созданные вами приложения
  • url.py: Это еще один конфигурационный файл. Вы можете подумать, что он служит отображением URL и связанных с ним функций Python. Этот файл является одной из мощных особенностей, и мы увидим, как обращаться с этим в следующей главе.

Когда мы начнем писать код для нашего приложения, мы создадим новые файлы внутри каталога проекта; потому каталог проекта служит так же и хранилищем для нашего кода.

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

Лучшая практика – использование контроля версий

Контроль версий – это система, которая запоминает все изменения, которые вы сделали в проектах, и вы сохраняете ваш прогресс. В любой момент вы можете увидеть изменения, сделанные в отдельном файле; за пределами временного периода вы можете обратить эти изменения или отредактировать файл.

Он вносит гораздо больше смысла в проект, у которого несколько участников, главным образом для тех, кто работает над одним и тем же файлом одновременно. Контроль версий – это спасатель жизни, так как он хранит записи о версиях файлов и предоставляет такие возможности, как сохранение с объединением или отменой изменений в любой копии.

Мы будем использовать распределенную систему контроля версий, так что каждый разработчик сможет иметь полную копию проекта (в отличие от подверсий, где репозитории расположены на системном сервере).

Git – самый последний и самый популярный инструмент контроля версий

Git – это инструмент контроля версий, который мы будем использовать для наших проектов. Это лучший инструмент из доступных, и он тоже относится к разряду open source. Git хорошо работает с разными версиями файлов, такими как файлы исходных кодов, файлы изображений, pdf файлы и т.д. Вы можете скачать Git по следующей ссылке:

http://Git-SCM.com/downloads

Большинство современных IDE имеют встроенную поддержку системы контроля версий; как и PyCharm, для Sublime есть плагин, который может интегрировать Git в рабочий каталог. Git можно запустить с терминала с помощью команды git, и вы можете проверить все существующие варианты ее применения использовав команду git –help.

Как работает Git

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

< Лекция 2 || Лекция 3: 12345 || Лекция 4 >
Константин Боталов
Константин Боталов

Вроде легкие вопросы и ответы знаю правильные, но система считает иначе и правильные ответысчитает неправильными. Приходится выполнть по несколько раз. Это я не правильно делаю или тест так составлен?

Владимир Филипенко
Владимир Филипенко

Листинг показывает в 4-ой лекции, что установлен Django 1.8.4. Тут же далее в этой лекции указаны настройки, которые воспринимает Django 1.7 и младше.