首页 > 解决方案 > 执行自定义 python 代码后无法运行 Django 服务器

问题描述

我重建了一个 Django 样板(Django 3.0.2,Python 3.7.5),在其中我将设置划分为不同的文件,分别在production.pydevelopment.py中进行生产和开发。在这里,srcmain重命名。他们都从base.py导入所有内容。我的项目的文件夹结构如下所示:

-Django_boilerplate
    -src
        -core
            -migrations
            -management
                -commands
                    -rename.py  
        -main
            -settings
                -base.py
                -development.py
                -production.py
        -templates
        -db.sqlite3
        -manage.py

我编写了rename.py,这样每当我处理一个新项目时,我就可以通过运行此文件来启动项目,从而相应地重命名项目。我的rename.py文件如下所示:

from django.core.management.base import BaseCommand
import os

class Command(BaseCommand):
    help = 'Renames a Django project'

    def add_arguments(self, parser):
        parser.add_argument('new', type=str, help='The new Django project name')

    def handle(self, *args, **kwargs):
        new_project_name = kwargs['new'][0]

        files_to_rename = ['main/settings/base.py', 
            'main/asgi.py', 
            'main/wsgi.py', 'manage.py']
        folder_to_rename = 'main'

        for f in files_to_rename:
            with open(f, 'r') as file:
                filedata = file.read()

            filedata = filedata.replace(folder_to_rename, new_project_name)

            with open(f, 'w') as file:
                file.write(filedata)

        os.rename(folder_to_rename, new_project_name)
        self.stdout.write(self.style.SUCCESS(f'Project has been renamed to {new_project_name}'))

然后我通过运行执行 rename.py 文件

python manage.py rename ecommerce

第一次,它执行并将设置更改为

os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'ecommerce.settings.development') 

manage.py

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

asgi.pywsgi.py文件中,但不在base.py中,其中 ROOT_URLCONF 和 WSGI_APPLICATION 的值没有改变。

ROOT_URLCONF = 'main.urls'
WSGI_APPLICATION = 'main.wsgi.application'

在此之后,我无法运行服务器以及重命名项目了。每当我运行服务器或rename.py文件时,命令提示符上都不会显示错误消息。我从 GitHub 存储库https://github.com/justdjango/django_project_boilerplate中引用了这个

我本可以克隆或复制代码,但想知道可以做什么。我的错误似乎是什么?EDIT1:添加了 Django 和 Python 版本详细信息 EDIT2:我还手动将这些文件中更改的所有名称从电子商务更改为main再次尝试查看是否有效,但它没有。

标签: djangopython-3.x

解决方案


推荐阅读