Джанго: роль названия проекта - PullRequest
9 голосов
/ 23 марта 2011

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

djangoadmin startproject <something>

Это вызывает сомнения, я не уверен в названии и думаю, что, возможно, захочу изменить его в будущем. Итак, у меня есть два вопроса:

  • Какую роль играет имя проекта в коде проекта и развертывании?
  • Какие шаги мне нужно предпринять, чтобы изменить название моего проекта?

Спасибо!

Ответы [ 2 ]

3 голосов
/ 23 марта 2011

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

По умолчанию в строке settings.py вы будете иметь: "ROOT_URLCONF ='thing.urls '".

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

Конечно, вы всегда можете использовать модули без префикса'thing ', тогда вы должны убедиться, что не будет никакого конфликта имени / пространства именмежду модулями.Я использую эту опцию, потому что у меня может быть один и тот же код в нескольких экземплярах без дополнительных хлопот.

1 голос
/ 07 февраля 2018

Поздно к этой вечеринке, но для дальнейшего использования это может кому-то помочь. Мне просто нужно было изменить имя проекта, потому что оно конфликтует с именем стороннего приложения. Проще изменить имя проекта, чем имя приложения! (Джанго 1.11)

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

project/
    manage.py
    project/
         settings.py
         urls.py
         wsgi.py
    venv/
  1. Если вы используете виртуальную среду в venv, создайте актуальную requirements.txt с pip freeze
  2. Переименуйте обе project/ папки в newproject
  3. Измените project на newproject в файлах python:

manage.py , ищите DJANGO_SETTINGS_MODULE

settings.py , найдите DJANGO_SETTINGS_MODULE и WSGI_APPLICATION и комментарий. Вы можете и должны оставить имя базы данных и пользователя базы данных без изменений, при условии, что вы хотите сохранить данные.

urls.py , в тройной кавычке

wsgi.py , DJANGO_SETTINGS_MODULE плюс комментарий

  1. Если вы используете виртуальную среду, вам нужно ее воссоздать. Я переименовал venv в old.venv, затем virtualenv-3 venv, затем использовал pip install и файл требований, который вы создали в 1. Корзина old.venv, когда новый AOK работает.

  2. /path/to/project также будет отображаться в системных конфигурационных файлах, таких как /etc/nginx и файл .service для gunicorn, который нужно будет изменить на /path/to/newproject.

  3. Перезагрузите сервер и протестируйте. Должно работать.

Теперь вы можете добавить приложение под названием project к вашему INSTALLED_APPS!

Теперь я знаю, что хорошей идеей будет называть собственные проекты Django ${my_org_name}_something или аналогичные, чтобы они не конфликтовали со сторонними приложениями.

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