К основному контенту

Создать Django проект в виртуальном окружении

У Django имеется admin, этот admin умеет генерировать основу проекта. Любой проект Django начинается с команды django-admin startproject. Но... прежде чем создавать проект, необходимо позаботиться:
- об интерпретаторе Python и его пакетах, в число которых включается и сам Django
- о правильной структуре каталогов, в которые будет вложен код Django проекта

От версии интерпретатора может зависеть как стиль написания кода, так и архитектура проекта. По такому случаю необходимо ориентироваться в версиях Python'а для запуска среды исполнения Django и изолировать пакетные зависимости. В этом деле поможет виртуальное окружение - virtualenv. Необходимо установить virtualenv, если он еще не установлен в системе.

От структуры каталогов проекта зависит удобство дальнейшего расширения, поддержки и деплоя. Единого решения нет, но абсолютно точно не нужно смешивать исходный код проекта с файлами виртуального окружения. Следует их разделить по директориям:
|_project (директория проекта)
  |_venv (директория для виртуального окружения)
  |_dst (директория для Django-проекта)

Django-проект может быть частью проекта, например предоставлять API для SPA (одностраничного приложения). Так-как исходный код Django не требует сборки, то по логической сути имеет смысл Django-проект поместить в директорию "dst" (destination) куда и будет собираться клиентская часть из директории src. Если же проект состоит только из Django, то в любое время он может расшириться. Придерживаясь стандарту именования директорий проекта будет меньше путаницы.

Необходимо:

- cоздать директорию проекта с виртуальным окружением
  (пакеты устанавливаются локально (изолировано) по умолчанию)
  [project] заменить на желаемое имя проекта
  [version] указать версию интерпретатора
virtualenv [project]/venv --python=/usr/bin/python[version]

- активировать виртуальное окружение
  [project] директория твоего проекта
source [project]/venv/bin/activate

- установить Django
  (установится последняя версия)
  (установить пакетный менеджер Python (pip), если он еще не установлен)
pip install django

- создать директорию для Django-проекта
  [project] директория твоего проекта
mkdir [project]/dst

- создать Django-проект
  [Django-project] заменить на желаемое имя Django-проекта
  [project]/dst/ директория_твоего_проекта/директория_для_django-проекта
django-admin startproject [Django-project] [project]/dst/

Комментарии