我想知道是否有一种简单的方法来重命名项目。该项目有一个我想重命名的应用程序。当然,如果我将其重命名为文件夹,它就不会起作用。我在这里和Google进行了搜索,但我找不到答案。感谢
答案 0 :(得分:1)
重命名项目实际上比重命名应用程序容易。 This question explains how to rename an app.
要重命名项目,您需要更改项目名称,无论它出现在什么地方。 grep -nir oldname .
可以帮助您找到它的出现位置。就我而言,我必须更改以下位置:
将oldprojectname
目录重命名为newprojectname
manage.py
:更改os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'oldprojectname.settings')
newprojectname/wsgi.py
:更改os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'oldprojectname.settings')
newprojectname/settings.py
:更改ROOT_URLCONF = 'oldprojectname.urls'
并更改WSGI_APPLICATION = 'oldprojectname.wsgi.application'
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
将内部和外部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
将项目文件中对old_project_name的引用更改为new_project_name。通常,您将需要在settings.py,wsgi.py和manage.py
中更改引用完成这些更改后,请运行本地服务器并检查路由是否正常。
更改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>
在终端中运行
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)
在终端中运行以下命令。这将更改您当前的远程存储库网址
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)
现在,您可以将新更新推送到远程存储库中。
更新虚拟环境。这是可选的,但将有助于识别到项目的虚拟环境映射。我使用virtualenvwrapper。如果使用其他命令,则必须根据您的虚拟环境更新命令。
在终端中运行以下命令。这将创建名称为new_project_name的old_project_name环境设置的副本。
cpvirtualenv old_project_name new_project_name
删除旧环境。此步骤也是可选的。
在终端中运行以下命令
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 的初学者,以下简单步骤对我有用。
更新项目中的外部和内部文件夹名称(直接从 Windows 资源管理器或 Visual Studio 等任何编辑器中)
在以下项目文件中搜索旧项目名称并将其替换为新名称
一个。管理.py
湾设置.py
C。 wsgi.py
d.asgi.py
e. urls.py
重启服务器并确认一切是否正常
答案 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 个地方(包括注释和代码)出现项目名称,分别是:
在 new_project_name/asgi.py
文件中(评论):
old_project_name 项目的 ASGI 配置。
在 new_project_name/asgi.py
文件(代码)中:
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'old_project_name.settings')
在 manage.py
文件(代码)中:
os.environ.setdefault('DJANGO_SETTINGS_MODULE', old_project_name.settings')
在 new_project_name/settings.py
文件中(评论):
old_project_name 项目的 Django 设置。
在 new_project_name/settings.py
文件(代码)中:
ROOT_URLCONF = 'old_project_name.urls'
在new_project_name/settings.py
(代码)中:
WSGI_APPLICATION = 'old_project_name.wsgi.application'
在 new_project_name/urls.py
文件中(评论):
old_project_name URL 配置
在 new_project_name/wsgi.py
文件中(评论):
old_project_name 项目的 WSGI 配置。
在 new_project_name/wsgi.py
文件(代码)中:
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'old_project_name.settings')
注意:要将文件中的 old_project_name 更改为 new_project_name,您可以使用 IDE 的/文本编辑器的 find &替换函数以避免任何错误。
提示:如果您在项目中没有做太多工作,那么最好创建一个新的 Django 项目,然后复制粘贴不需要任何更改的代码,而不是更改项目名称。