Какова файловая структура ядра проекта, созданного на django

Обновлено: 30.06.2024

В этом сообщении блога вы узнаете, как создать наилучшую структуру папок для вашего проекта Django. Структура папок Django состоит из корня проекта и приложений. Если вы не создадите правильную структуру папок, все будет выглядеть сложно.

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

Создать проект

Создать проект в Django очень просто; Это просто команда startproject, и она создаст несколько файлов и папок в вашем проекте. Давайте посмотрим, что это такое…

Теперь дерево проекта будет выглядеть так.

Теперь мы создали проект Django, и теперь у нас есть два варианта действий. Один из них — создать приложения рядом с projdir или создать приложение в папке проекта и продолжить разработку на его основе.

Два метода

  1. Создавайте приложения после папки проекта.
  2. Создавайте приложения в папке проекта.

Мне больше нравится второй подход, потому что он дает четкое представление о проекте в целом. Это очень просто и будет выглядеть так, как будто все организовано. Итак, давайте создадим приложения для нашего проекта.

Создание приложений

Для второго подхода нам нужно создать папку вручную, а затем запустить команду startapp. Таким образом, мы можем избежать командной ошибки, вызванной отсутствием папки.

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

Приложения, созданные с помощью команды startapp, будут иметь все необходимые файлы для приложения Django. Теперь, как мы можем указать это на установленные приложения.

Установленные приложения

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

Здесь есть два подхода: один из них использует пунктирный путь к каталогу приложений или каталогу AppConfig.

  1. Путь с точками от корневой папки проекта к приложениям.
  2. Путь с точками от корневой папки проекта до AppConfig.

Я могу просто использовать первый подход, но Django в последнее время заставляет разработчиков чаще использовать AppConfig. Я говорю, что первый довольно легко упомянуть. В нашем случае это будет projdir.app1

Но второй подход немного отличается: вам нужно изменить переменную имени файла apps.py, тогда только Django будет считать пунктирный путь AppConfig допустимым.

И в установленном приложении просто укажите путь до AppConfig вот так…

Заключение

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

Вы можете найти весь код в репозитории github/django-project-structure.

Эта статья опубликована в разработке с использованием тегов django. Пожалуйста, подпишитесь на формы ниже, чтобы получать статьи.

обычный рабочий процесс Django, описанный в официальном руководстве по Django, запускает проект с помощью команды:

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

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

Аргумент шаблона работает с путями на вашем локальном компьютере, но также поддерживает URL-адреса. Таким образом, вы можете легко получить этот скелет с GitHub с помощью этой команды:

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

Корень Джанго¶

Корневой каталог Django будет называться в соответствии с именем проекта, указанным вами в django-admin startproject [projectname] . Этот каталог является связью проекта с Django.

[projectname]/settings/ Вместо простого файла settings в этом модуле Python конфигурация разделена на несколько файлов. Подробную документацию по этим настройкам см. в разделе Настройки. [projectname]/urls.py Конфигурация корневого URL-адреса проекта. Единственным настроенным набором URL-адресов является admin-application. Для получения дополнительной информации см. Книгу Django, главу 3 и Книгу Django, главу 8. [projectname]/wsgi.py При развертывании Django используется WSGI, способ развертывания веб-приложений Pythonic. Дополнительные сведения см. в официальной документации по настройкам на WSGI. WSGI-приложение по умолчанию изменено для использования нашего модуля настроек.

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

конфигурации/¶

Этот каталог содержит файлы конфигурации для развертывания. Предоставляется файл конфигурации для развертывания с Apache2 и mod_wsgi.

Обратите внимание: настоятельно рекомендуется сохранять конфиденциальность фактической конфигурации сервера. Поэтому предоставляется файл .gitignore, который будет включать в Git только файлы, заканчивающиеся суффиксом .sample.

Краткий обзор файла configs/apach2_vhost.sample см. в разделе Конфигурация виртуального хоста Apache2 .

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

Этот каталог содержит исходные файлы для этой документации.

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

Этот каталог содержит необходимые файлы для запуска Django. Все эти файлы могут содержать важную или бесполезную информацию, поэтому вам не следует держать эти файлы в системе контроля версий. Подготовлен файл .gitignore.

Этот каталог будет содержать файл базы данных SQLite (если вы сохраните предоставленные настройки dev) и SECRET_KEY Django. Подробное объяснение см. в разделе Настройки .

run/media/ Django использует специальную папку для хранения пользовательских файлов (загрузок). В модуле настроек этого скелета этот каталог установлен как MEDIA_ROOT. run/static/ Подобно медиафайлам, все статические ресурсы (например, таблицы стилей, файлы JavaScript, изображения) обслуживаются из специального каталога.

статические/ и шаблоны/¶

Эти каталоги используются для общих файлов проекта, то есть статических ресурсов и шаблонов общего проекта.

static/ Этот каталог используется для предоставления статических ресурсов нашего проекта. Пожалуйста, обратитесь к документации Django для получения более подробной информации. Параметры документируют параметр STATICFILES_DIRS. templates/ Этот каталог используется для предоставления общих шаблонов нашего проекта. Параметры документируют параметр TEMPLATE_DIRS. Обратите внимание, что два базовых шаблона уже включены. Они используются для включения очень простой функции входа в проект.

© Copyright 2018, Mischback, редакция 332f564a.

Последние стабильные версии 1.4 1.3 1.2 1.1 1.0 Загрузки html On Read the Docs Главная страница проекта Сборки Бесплатный хостинг документов, предоставляемый Read the Docs.

Структура файла проекта Django

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

Самый внешний каталог имен проектов

django внешний корневой каталог


Внешний каталог является контейнером для проекта Django. Он назван на основе имени, которое вы указали при запуске команды django-admin startproject. В нашем случае мы использовали django-admin startproject myproject, поэтому имя этого каталога контейнера — myproject. Некоторые разработчики меняют название этой папки, но, скорее всего, лучше оставить ее как есть. Поскольку это не имеет никакого значения для Django, при необходимости вы можете переименовать его.

Внутренний каталог имен проектов

внутренняя папка проекта django


Внутренняя папка проекта всегда будет иметь то же имя, что и внешний каталог при создании нового проекта Django. Он представляет собой пакет Python, который будет использоваться в этом проекте Django. Опять же, вероятно, лучше оставить имя этого каталога в покое. Вскоре мы увидим, что этот каталог содержит файл __init__.py, благодаря которому этот каталог действует как модуль или пакет Python. Именно так работает Python, и это не обязательно специфично для Django.

В этой статье вы научитесь работать с Django 1.8 и создадите структуру проекта, которая будет понятна вам и другим разработчикам. Я буду использовать Python 3.4 во всем демонстрируемом проекте. Наше backend-приключение начнется с настройки окружения для нашего проекта и закончится описанием хороших практик и готовых решений.

Павел | член команды

11 минут чтения

Примеры в моей статье не являются идеальными шаблонами проектирования — они созданы для использования в качестве рекомендаций по структурированию вашего проекта.Они создадут логическую структуру и проведут нас по структуре папок и файлов.

Настройка среды

В самом начале вам нужно подумать о том, как вы хотите работать с проектом, чтобы поддерживать порядок в вашей системе и избегать конфликтов с другими проектами. Неважно, установлен ли у вас уже Django на вашем компьютере или вы только планируете это сделать. Однако все становится сложнее, когда вы хотите работать с версией Django, которая отличается от той, которая использовалась в проектах, которые уже хранятся на вашем жестком диске. Конечно, пока вы не используете дополнительные модули, вы можете легко переустановить Django до нужной версии. Вы также можете сделать то же самое с Python. Однако, чтобы обойти эту проблему, вы можете использовать виртуальную среду под названием virtualenv. Его задача — изолировать определенные версии Python, Django и других модулей таким образом, чтобы они не повлияли на другие проекты. Это можно сравнить со шкафом, куда вы складываете все необходимые вещи, чтобы изолировать их от остальных ваших вещей. У вас может быть бесконечное количество таких «кабинетов», которые можно открывать в любое время. Таким образом, вы можете сохранить настройки каждого проекта отдельно.

Вы можете установить virtualenv, следуя инструкциям на официальном сайте. Следующим шагом будет создание первой среды для нашего проекта. Для этого вам нужно перейти в консоль, а затем в папку по вашему выбору (в которой будет создан новый каталог с именем нашей виртуальной среды). Выполните команду:

Наша виртуальная среда называется myenv, и она будет уникальной для каждого проекта. Чтобы запустить его и активировать нашу новую среду, вам нужно выполнить эту команду:

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

Если все сделано правильно, в консоли должен появиться следующий префикс:

Повторяющийся ввод пути активации virtualenv не очень эффективен и может быть оптимизирован благодаря virtualenvwrapper. Для его использования вам понадобится virtualenv.

Теперь мы можем создать виртуальную среду с помощью следующей команды (принцип работы такой же, как и в случае с virtualenv, но на этот раз мы будем использовать обёртку):

Если вы столкнулись с ошибкой во время выполнения приведенной выше команды, используйте другое имя виртуальной среды (например, myenv_project). Ошибка вызвана уже существующей виртуальной средой с таким же именем.
В этом случае нам не нужно переходить в каталог (где мы создадим проект и запустим virtualenv ) для создания соответствующего набора файлов конфигурации виртуальной среды. Эти файлы сгруппированы в папке, определенной во время установки этого дополнения. Нам больше не нужно активировать окружение через путь, а только через команду:

Как и в случае с virtualenv, в консоли будет добавлен префикс.

Сейчас нам нужно установить предпочтительную версию Django в нашей среде.

Обзор структуры проекта по умолчанию

Если вы раньше не контактировали с Django, вам следует ознакомиться с базовой структурой проекта. Django может сгенерировать необходимые элементы каталога с помощью следующей команды (выполните ее в каталоге, в котором вы хотите создать веб-сайт):

mysite — это имя любого каталога, в котором будут создаваться необходимые подкаталоги и файлы.

Если вы не хотите создавать дополнительный каталог с именем «mysite», вы можете закончить команду точкой.

Благодаря этому вся структура нашего проекта будет построена в каталоге. Это означает, что наш проект будет выглядеть так:

Это связано с тем, что имя основной папки не имеет значения для Django и может принимать любое значение. Однако вам нужно обратить внимание на название папки «mysite». Здесь хранится конфигурация сайта. Давайте посмотрим на каждый из этих файлов:

  1. __init__.py — обычно это пустой файл, сигнализирующий о том, что папка является пакетом. Подробнее об этом можно прочитать на официальном сайте Python;
  2. settings.py — это файл, содержащий все настройки проекта, позволяющие запустить веб-сайт и настроить (например) базу данных;
  3. urls.py — здесь размещаются шаблоны URL, которые используются для маршрутизации страниц по определенным путям;
  4. wsgi.py — содержит все настройки WSGI, которые могут нас заинтересовать при установке сайта на внешний сервер.

Изменение файла settings.py

Если вы откроете файл settings.py, вы увидите, что все основные части были написаны и подготовлены, чтобы мы могли быстро изменить их. Для начала стоит установить часовой пояс. В моем случае это будет:

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

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

Рекомендуется взглянуть на кортеж с именем INSTALLED_APPS. В нем мы печатаем названия всех приложений, которые будем использовать в проекте. Важно, чтобы после каждого имени, введенного в виде строки (например, «my_app»), мы добавляли запятую. Подробнее о том, как создать собственное приложение, я расскажу позже в этой статье.

Теперь нам просто нужно создать необходимые таблицы в базе данных. Мы можем сделать это с помощью следующей команды:

После всех этих шагов проект теперь можно запускать локально.

Структура приложения

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

myapps – это название нашего приложения. Мы должны добавить его в INSTALLED_APPS

.

Давайте рассмотрим каждый из этих файлов:

  1. __init__.py — то же, что и раньше;
  2. admin.py — в этом файле вы можете настроить панель администратора, упрощая управление базой данных и содержимым сайта;
  3. models.py — здесь мы создаем код, представляющий схему базы данных, что позволяет нам создавать таблицы без использования SQL;
  4. tests.py — сюда мы помещаем код, который тестирует наше приложение;
  5. views.py — здесь мы должны создать слой пользовательского интерфейса в соответствии с предположениями MVC.

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

В будущем каждое приложение, вероятно, будет включать файлы шаблонов (например, HTML), которые следует размещать в папке "templates" внутри приложения. Это может выглядеть так:

Если у вас зоркий глаз, то вы заметите, что я добавил дополнительную папку (названную как наше приложение), а затем поместил в нее файл с расширением HTML. Такое расположение является условным, но позволяет поддерживать порядок в проекте.
Также стоит создать папку шаблонов, которая будет доступна на всей территории проекта. В нем вы должны хранить html-шаблоны, которые могут использоваться несколькими приложениями. Это будет выглядеть так:

Django может не видеть наши шаблоны. Эту проблему можно решить, дополнив список ШАБЛОНОВ, расположенный в settings.py:

Имейте в виду, что Django не важно, какие шаблоны имеют расширения html или txt. Однако следует оставить одно расширение, которое правильно описывает содержимое файла.

Что дальше?

Может показаться, что мы в принципе сделали все возможное, чтобы наш проект был понятным и функциональным. Действительно, созданная структура полезна и понятна. К сожалению, иногда можно заметить, что повторять одну и ту же схему создания проекта становится скучно и неэффективно. То, о чем идет речь в этой части статьи, полезно для новичков в Django-разработке и помогает им в ней разобраться. Однако стоит пойти еще дальше и использовать уже готовые структуры/шаблоны проекта — об этом я расскажу во второй части своей статьи, которая вскоре будет опубликована в нашем блоге. Подпишитесь на нас в Facebook, Twitter и LinkedIn, чтобы ничего не пропустить!

Читайте также: