본문 바로가기

Python/Django

Django app 위치 변경 # + 생성

728x90
반응형

Django로 프로젝트를 진행하다 보면,

static, template 디렉토리들과 django로 만든 app들을 분리해서 정리할 필요성을 느낄때가 있습니다.

 

django-admin startapp 명령어를 통해 생성된 app들만 따로 모아서 분류하는 방법을 알아보겠습니다.

 

django_apps 디렉토리를 만들어서

django-admin startapp 명령어를 통해 만들어진 users app을

django_apps에 이동시키는 예로 설명하겠습니다.

 

1) settings.py -  INSTALLED_APPS 설정

INSTALLED_APPS = [
    'django_apps.users',
]

  'users' -> 'django_apps.users'로 변경

 

2) django_apps.users의 apps.py 변경

from django.apps import AppConfig

class UsersConfig(AppConfig):
    default_auto_field = 'django.db.models.BigAutoField'
    name = 'django_apps.users'
    # name = 'users' 에서 위와 같이 변경

 

3) 프로젝트 앱에서 urls.py에 호출하는 경우로 설정했다면 아래와 같이 변경

from django.contrib import admin
from django.urls import path, include

urlpatterns = [
    path('users/', include('django_apps.users.urls')),
    path('admin/', admin.site.urls),
]

# 5번째줄에 기존 include('users.urls') 를 위와 같이 변경

 

* 생성 자체를 특정 디렉토리 안에서하기

1)djang_apps 안에 users를 만들기

django-admin startapp users django_apps/users

위와 같이 하면 되는데, django_apps/users가 생성되어 있지 않으면 다음과 같은 오류가 발생하므로 담아줄 디렉토리를 먼저 만들고 실행합니다

CommandError: Destination directory '/home/taltal/git/yogiresume/django_apps/users' does not exist, please create it first

 

2) django_apps.users의 apps.py 변경

from django.apps import AppConfig

class UsersConfig(AppConfig):
    default_auto_field = 'django.db.models.BigAutoField'
    name = 'django_apps.users'
    # name = 'users' 에서 위와 같이 변경

 

728x90
반응형