【问题标题】:Django: the role of the project nameDjango:项目名称的作用
【发布时间】:2011-03-23 15:31:05
【问题描述】:

我正在考虑创建一个新的 Django 项目,我现在必须选择一个项目名称,所以我可以输入:

djangoadmin startproject <something>

这引起了怀疑,我不确定这个名字,我想我将来可能想改变它。所以,我有两个问题:

  • 项目名称在项目代码和部署中起什么作用?
  • 更改项目名称需要采取哪些步骤?

谢谢!

【问题讨论】:

    标签: django


    【解决方案1】:

    主项目名称用作命名空间的基础。

    默认情况下,您将在 settings.py 行:“ROOT_URLCONF = 'something.urls'”。

    要更改项目名称,您需要更改引用它的每个导入。

    当然你总是可以使用没有'something'前缀的模块,那么你必须确保模块之间不会有名称/命名空间冲突。我正在使用这个选项,因为我可以在几个副本中拥有相同的代码而无需额外的麻烦。

    【讨论】:

      【解决方案2】:

      迟到了,但为了将来参考,这可能对某人有所帮助。我只需要更改项目名称,因为它与第三方应用程序的名称冲突。更改项目名称比更改应用名称更容易! (Django 1.11)

      文件夹结构

      project/
          manage.py
          project/
               settings.py
               urls.py
               wsgi.py
          venv/
      
      1. 如果在venv 中使用虚拟环境,请使用pip freeze 生成最新的requirements.txt
      2. 将两个project/ 文件夹重命名为newproject
      3. 在 python 文件中将 project 更改为 newproject

      ma​​nage.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 和 gunicorn 的 .service 文件,需要将其更改为 /path/to/newproject

      3. 重新启动服务器并进行测试。应该可以工作了。

      现在您可以将名为 project 的应用添加到您的 INSTALLED_APPS!

      我现在知道调用内部 Django 项目 ${my_org_name}_something 或类似名称是个好主意,这样它们就不会与第三方应用程序发生冲突。

      【讨论】:

        猜你喜欢
        • 2013-10-28
        • 2016-11-29
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多