[django] app폴더 서브폴더 안으로 이동시키기

최승언·2022년 11월 10일
0

django

목록 보기
4/15

django를 통해 WAS서버를 구축하는데 기능마다 app을 다르게 만들어 관리하고 싶다면 기존 루트에 계속 app을 만들면 폴더가 많아져서 관리하기가 귀찮아질 수 있다. 그래서 서브폴더를 만들고 그 안에 app폴더를 넣어서 제작하는 법을 정리하였다.

1. 서브폴더 생성 및 app 생성

mkdir <서브 폴더명>/< 이름>
python manage.py startapp < 이름>  <서브 폴더명>/< 이름>

2. apps.py의 name 수정

app을 생성하면 apps.py라는 파일이 있다 내용을 아래처럼 수정한다.

class AppConfig(AppConfig):
    # optional, add default auto field
    default_auto_field = 'django.db.models.BigAutoField'
    # set location of app using sub dir
    name = '<서브 폴더명>.<앱 이름>'

3. settings.py 파일의 INSTALLED_APPS 수정

django에서 app을 추가하면 settings.py에서 INSTALLED_APPS에 app을 추가한다는 사실은 알고 있을 것이다. 여기서 서브 폴더명을 추가하여 넣어주자.

INSTALLED_APPS = (
    ...
    '<서브 폴더명>.<앱 이름>',
)

4. urls.py 파일의 urlpatterns 수정

프로젝트 폴더안에 있는 urls.py에 urlpatterns에도 해당 app에 대한 url을 추가해야 한다. 이것도 앞에 서브 폴더명을 붙여서 추가하여 넣어주자.

urlpatterns = [
    ...
    path('<url 주소>/', include('<서브 폴더명>.<앱 이름>.urls')),
    ...
]

5. migration 경로 수정 (migration이 필요한 경우에만)

마지막으로 migration 경로를 수정해 주면 끝.

makemigrations < 이름> --pythonpath='<서브 폴더명>'
# makemigrations myapp --pythonpath='apps'
profile
작업하다가 막힌부분을 기록하는 곳.

0개의 댓글