【发布时间】:2011-03-23 15:31:05
【问题描述】:
我正在考虑创建一个新的 Django 项目,我现在必须选择一个项目名称,所以我可以输入:
djangoadmin startproject <something>
这引起了怀疑,我不确定这个名字,我想我将来可能想改变它。所以,我有两个问题:
- 项目名称在项目代码和部署中起什么作用?
- 更改项目名称需要采取哪些步骤?
谢谢!
【问题讨论】:
标签: django
我正在考虑创建一个新的 Django 项目,我现在必须选择一个项目名称,所以我可以输入:
djangoadmin startproject <something>
这引起了怀疑,我不确定这个名字,我想我将来可能想改变它。所以,我有两个问题:
谢谢!
【问题讨论】:
标签: django
主项目名称用作命名空间的基础。
默认情况下,您将在 settings.py 行:“ROOT_URLCONF = 'something.urls'”。
要更改项目名称,您需要更改引用它的每个导入。
当然你总是可以使用没有'something'前缀的模块,那么你必须确保模块之间不会有名称/命名空间冲突。我正在使用这个选项,因为我可以在几个副本中拥有相同的代码而无需额外的麻烦。
【讨论】:
迟到了,但为了将来参考,这可能对某人有所帮助。我只需要更改项目名称,因为它与第三方应用程序的名称冲突。更改项目名称比更改应用名称更容易! (Django 1.11)
文件夹结构
project/
manage.py
project/
settings.py
urls.py
wsgi.py
venv/
venv 中使用虚拟环境,请使用pip freeze 生成最新的requirements.txt
project/ 文件夹重命名为newproject
project 更改为 newproject:manage.py,寻找 DJANGO_SETTINGS_MODULE
settings.py,查找 DJANGO_SETTINGS_MODULE 和 WSGI_APPLICATION 以及注释。假设您要保留数据,您可以而且应该保持数据库名称和数据库用户不变。
urls.py,在三引号字符串中
wsgi.py,DJANGO_SETTINGS_MODULE 加评论
如果使用虚拟环境,则需要重新创建它。我将venv 重命名为old.venv,然后是virtualenv-3 venv,然后使用pip install 和您在1 处生成的需求文件。垃圾箱old.venv 确保新文件正常工作时AOK。
/path/to/project 还将出现在系统配置文件中,例如 /etc/nginx 和 gunicorn 的 .service 文件,需要将其更改为 /path/to/newproject。
重新启动服务器并进行测试。应该可以工作了。
现在您可以将名为 project 的应用添加到您的 INSTALLED_APPS!
我现在知道调用内部 Django 项目 ${my_org_name}_something 或类似名称是个好主意,这样它们就不会与第三方应用程序发生冲突。
【讨论】: