Как сгенерировать дополнительные файлы с помощью команды python manage.py startapp xxx? - PullRequest
1 голос
/ 04 июля 2019

Для команды "python manage.py createapp xxx" есть способ сгенерировать некоторые дополнительные файлы, например, xxx.urls, statics.dir, template.dir и т. Д.

Я бы хотелбыть в состоянии избежать работы по созданию файлов и каталогов, которые мне могут понадобиться позже.файлы как например;app.urls, statics.dir и т. Д.

Ответы [ 2 ]

0 голосов
/ 05 июля 2019

Команда startapp [Django-doc] имеет флаг --template . Как сказано в документации:

--template TEMPLATE

Предоставляет путь к каталогу с файлом пользовательского шаблона приложения или путь к сжатому файлу (.tar.gz, .tar.bz2, .tgz, .tbz, .zip), содержащий файлы шаблонов приложения.

Например, joshvillbrandt/django-quick-start-app [GitHub] содержит такой шаблон. Вы можете получить заархивированную копию с https://github.com/joshvillbrandt/django-quick-start-app/archive/master.zip. Этот репозиторий содержит, как вы можете видеть, каталог templates и static, а также urls.py, views.py, tests.py, admin.py и т. Д.

Таким образом, вы можете запустить команду startapp с:

manage.py startapp <b>--template 'https://github.com/joshvillbrandt/django-quick-start-app/archive/master.zip'</b> myappname

Конечно, вы можете найти другой репозиторий, содержащий шаблон. Кроме того, вы можете определить свой собственный шаблон, который содержит приложение, как вам нравится.

0 голосов
/ 05 июля 2019

Вы можете создавать свои собственные команды Django. Пример:

python manage.py execute_my_command

Структура ваших папок должна быть похожей. Проект будет называться тестовым, а структура будет иметь следующий вид:

test
   management
      commands
           __init__.py
           execute_python.py
      __init__.py

В тестах нашего проекта находится управление папками, внутри этих команд и внутри команды наш файл python, в котором есть имя команды, которая должна быть выполнена. Внутри execute_python находится код команды:

from django.core.management.base import BaseCommand

class Command(BaseCommand):
help = "Ejecuta archivo python archivo_a_ejecutar.py"

def handle(self, *args, **options):
    self.stdout.write('Ejecutando comando')
    os.system("python archivo_a_ejecutar.py")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...