Невозможно запустить сервер Django после выполнения пользовательского кода python - PullRequest
0 голосов
/ 02 февраля 2020

Я реконструировал шаблон Django (Django 3.0.2, Python 3.7.5), где я разделил настройки как отдельные файлы для производства и разработки отдельно внутри production.py и development.py соответственно. Здесь sr c было переименовано из main . Они оба импортируют все из 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.py & wsgi. 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: я также вручную изменил все имена, которые были изменены в этих файлах, с ecommerce на main обратно, чтобы попытаться проверить, это сработало, но не сработало.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...