Организуйте приложения django внутри

При создании приложений вы делаете следующее: python manage.py startapp app1, но это автоматически создает приложение в корневой папке проекта.

/project1/
         /app1/
         /app2/
         ...
         __init__.py
         manage.py
         settings.py
         urls.py

как создать и сохранить в уже созданной папке все приложения, которые создаются в Django? например: в этом случае у меня есть папка под названием "apps" внутри нее будут все приложения, которые создаются во время разработки:

/project/
         apps/
              app1/
              app2/
              ...
         __init__.py
         manage.py
         settings.py
         urls.py

Любой, кто может предоставить информацию, будет заранее признателен.

Как указано в документах django,

django-admin startapp name [directory]

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

Например:

django-admin startapp myapp apps/myapp

Затем вам придется немного изменить файл настроек, чтобы django распознал приложения:

import os
import sys # new

# Build paths inside the project like this: os.path.join(BASE_DIR, ...)
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
...

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'myapp.apps.MyappConfig',
]
...
sys.path.append(os.path.join(BASE_DIR, 'apps')) # at the bottom of the file

Это также работает в моем случае. В settings.py

import sys

# Build paths inside the project like this: BASE_DIR / 'subdir'.
BASE_DIR = Path(__file__).resolve().parent.parent

# NEW: Add apps directory to Python file path
PROJECT_ROOT = os.path.dirname(__file__)
sys.path.insert(0, os.path.join(PROJECT_ROOT, "apps"))

Затем вы можете использовать все приложения в этой папке точно так же, как они были в корне вашего проекта!

"app_name.apps.App_nameConfig"

Первый запуск django-admin startproject project_name Если вы хотите создать в текущем каталоге, вы можете написать точку в конце команды следующим образом: django-admin startproject project_name .

Затем создание приложения python manage.py startapp app_name

Посетите для более подробного объяснения https://docs.djangoproject.com/en/4.1/intro/tutorial01/

Создайте папку внутри папки проекта и перейдите в эту новую созданную папку

Затем выполните команду для создания приложения (не нужно указывать путь к папке, так как вы уже находитесь в нужной папке)

Перейдите к файлу apps.py внутри нового созданного приложения и измените его имя. Добавьте имя папки перед именем приложения, соединив оба символа точкой

например, имя папки - apps, а имя приложения - myapp, измените имя = 'apps.myapp'

Теперь перейдите в основной файл settings.py и добавьте имя вашего приложения таким же образом (apps.myapp)

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

Вернуться на верх