重命名django项目的简便方法

时间:2013-08-17 22:27:43

标签: django

我想知道是否有一种简单的方法来重命名项目。该项目有一个我想重命名的应用程序。当然,如果我将其重命名为文件夹,它就不会起作用。我在这里和Google进行了搜索,但我找不到答案。感谢

6 个答案:

答案 0 :(得分:1)

重命名项目实际上比重命名应用程序容易。 This question explains how to rename an app.

要重命名项目,您需要更改项目名称,无论它出现在什么地方。 grep -nir oldname .可以帮助您找到它的出现位置。就我而言,我必须更改以下位置:

  1. oldprojectname目录重命名为newprojectname

  2. manage.py :更改os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'oldprojectname.settings')

  3. newprojectname/wsgi.py :更改os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'oldprojectname.settings')

  4. newprojectname/settings.py :更改ROOT_URLCONF = 'oldprojectname.urls'并更改WSGI_APPLICATION = 'oldprojectname.wsgi.application'

  5. newprojectname/urls.py :在我添加的行中更改oldprojectname

答案 1 :(得分:0)

我认为这里最好的解决方案是打开您的settings.py,urls.py,views.py以及可能依赖于您项目名称的任何其他文件,然后在文本编辑器中使用find& replace函数。 / p>

或者,如果您还没有做太多工作,请使用django-admin.py启动一个新项目并复制/粘贴。

答案 2 :(得分:0)

假设您的项目名称为old_project_name,而您想将其更改为new_project_name。另外,您还在old_project_name中创建了一个名为my_app的应用程序。您的目录结构将类似于-

old_project_name
  --old_project_name
    --__init__.py
    --settings.py
    --urls.py
    --wsgi.py
  my_app
    --Files and folders under my_app
  db.sqlite3
  manage.py
  1. 将内部和外部old_project_name目录名都重命名为new_project_name。更改目录结构后,将像-

     new_project_name
       --new_project_name
         --__init__.py
         --settings.py
         --urls.py
         --wsgi.py
       my_app
         --Files and folders under my_app
       db.sqlite3
       manage.py
    
  2. 将项目文件中对old_project_name的引用更改为new_project_name。通常,您将需要在settings.py,wsgi.py和manage.py

    中更改引用
  3. 完成这些更改后,请运行本地服务器并检查路由是否正常。

  4. 更改git存储库名称。这是可选的,但是建议您这样做,因为它可以轻松跟踪您的项目。如果您已将项目添加到bitbucket或github,请登录到bitbucket或github并将存储库名称更改为new_project_name。假设您的旧存储库网址为https://<yourusername>@bitbucket.org/<yourusername>/old_project_name.git 重命名存储库后,您的项目git url将更改为https://<yourusername>@bitbucket.org/<yourusername>/new_project_name.git>

  5. 在终端中运行

     git remote -v
    

    它将列出您当前的远程存储库URL

     origin https://<yourusername>@bitbucket.org/<yourusername>/old_project_name.git(fetch)
     origin https://<yourusername>@bitbucket.org/<yourusername>/old_project_name.git(push)
    
  6. 在终端中运行以下命令。这将更改您当前的远程存储库网址

     git remote set-url origin https://<yourusername>@bitbucket.org/<yourusername>/new_project_name.git
    

    在终端中运行 git remote -v 现在它将列出类似

     origin https://<yourusername>@bitbucket.org/<yourusername>/new_project_name.git(fetch)
     origin https://<yourusername>@bitbucket.org/<yourusername>/new_project_name.git(push)
    

    现在,您可以将新更新推送到远程存储库中。

  7. 更新虚拟环境。这是可选的,但将有助于识别到项目的虚拟环境映射。我使用virtualenvwrapper。如果使用其他命令,则必须根据您的虚拟环境更新命令。

    在终端中运行以下命令。这将创建名称为new_project_name的old_project_name环境设置的副本。

     cpvirtualenv old_project_name new_project_name
    
  8. 删除旧环境。此步骤也是可选的。

    在终端中运行以下命令

     rmvirtualenv old_project_name
    

答案 3 :(得分:0)

非常简单有效

将此命令添加到项目中的任何此类应用程序中,

# app/management/commands/renameproject.py

import os
import glob
from django.conf import settings
from django.core.management.base import BaseCommand, CommandError


class Command(BaseCommand):
    help = 'Renames the Project'

    def add_arguments(self, parser):
        parser.add_argument('old', nargs='+', type=str, help="current project name")
        parser.add_argument('new', nargs='+', type=str, help="new project name")

    def handle(self, *args, **options):
        old = options["old"][0]
        new = options["new"][0]

        base = str(settings.BASE_DIR)
        projectfiles = []
        managefile = os.path.join(base, "manage.py")
        projectfiles.append(managefile)
        projectfiles += glob.glob(os.path.join(base, old, "*.py"))
        projectfiles += glob.glob(os.path.join(base, old, "**\*.py"))
        for pythonfile in projectfiles:
            with open(pythonfile, 'r') as file:
                filedata = file.read()

            filedata = filedata.replace(old, new)

            with open(pythonfile, 'w') as file:
                file.write(filedata)
        os.rename(os.path.join(base, old), os.path.join(base, new))

现在只需运行此命令

python manage.py renameproject oldname newname 

玩得开心?

答案 4 :(得分:0)

作为 Python 和 Django 的初学者,以下简单步骤对我有用。

  1. 更新项目中的外部和内部文件夹名称(直接从 Windows 资源管理器或 Visual Studio 等任何编辑器中)

  2. 在以下项目文件中搜索旧项目名称并将其替换为新名称

    一个。管理.py
    湾设置.py
    C。 wsgi.py
    d.asgi.py
    e. urls.py

  3. 重启服务器并确认一切是否正常

答案 5 :(得分:0)

要重命名 Django 项目,您需要更改项目名称出现的任何位置。

首先,将外部和内部项目目录名称从 old_project_name 重命名为 new_project_name

如果项目目录如下所示:

    old_project_name // outer project directory old name
      old_project_name// inner project directory old name
        --__init__.py
        --asgi.py
        --settings.py
        --urls.py
        --wsgi.py
      app_name // any app u created in the project
      db.sqlite3
      manage.py

然后更改为:

    new_project_name // outer project directory new name
      new_project_name// inner project directory new name
        --__init__.py
        --asgi.py
        --settings.py
        --urls.py
        --wsgi.py
      app_name // any app u created in the project
      db.sqlite3
      manage.py

2021 年 Django 3.2.3 版本,5 个文件中共有 9 个地方(包括注释和代码)出现项目名称,分别是:

  1. new_project_name/asgi.py 文件中(评论):

    old_project_name 项目的 ASGI 配置。

  2. new_project_name/asgi.py 文件(代码)中:

    os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'old_project_name.settings')

  3. manage.py 文件(代码)中:

    os.environ.setdefault('DJANGO_SETTINGS_MODULE', old_project_name.settings')

  4. new_project_name/settings.py 文件中(评论):

    old_project_name 项目的 Django 设置。

  5. new_project_name/settings.py 文件(代码)中:

    ROOT_URLCONF = 'old_project_name.urls'

  6. new_project_name/settings.py(代码)中:

    WSGI_APPLICATION = 'old_project_name.wsgi.application'

  7. new_project_name/urls.py 文件中(评论):

    old_project_name URL 配置

  8. new_project_name/wsgi.py 文件中(评论):

    old_project_name 项目的 WSGI 配置。

  9. new_project_name/wsgi.py 文件(代码)中:

    os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'old_project_name.settings')

注意:要将文件中的 old_project_name 更改为 new_project_name,您可以使用 IDE 的/文本编辑器的 find &替换函数以避免任何错误。

提示:如果您在项目中没有做太多工作,那么最好创建一个新的 Django 项目,然后复制粘贴不需要任何更改的代码,而不是更改项目名称。