본문 바로가기
DEV/Web 개발

Web 개발 :: 파이썬 django 프로젝트(Project), 앱(App)의 구조

by 올커 2022. 10. 6.

 

 

Python django 웹 개발_프로젝트(project), 앱(app)의 구조

 

01. Django 프로젝트의 구조

codeit_proj/ #프로젝트명
 ┗ manage.py
 ┗ django_prj # <프로젝트 디렉토리>
 	┗ __init__.py
 	┗ settings.py
 	┗ urls.py
 	┗ wsgi.py

 

 - Project Root : 프로젝트의 모든 파일을 담는 최상위 디렉토리

 ┗ manage.py : 프로젝트 관리를 위한 명령어 지원(앱 생성(startapp), 서버 실행(runserver), DB관련 명령 등)

  * 관련 링크 : https://docs.djangoproject.com/en/2.2/ref/django-admin/

 

django-admin and manage.py | Django documentation | Django

Django The web framework for perfectionists with deadlines. Overview Download Documentation News Community Code Issues About ♥ Donate

docs.djangoproject.com

  * django-admin은 manage.py와 거의 동일한 기능을 하나, manage.py가 django-admin을 포괄하며, 더 많은 설정기능이 있다. 프로젝트 생성시에는 django-admin, 나머지 기능은 manage.py를 사용하면 된다.

# 프로젝트 생성
django-admin startproject <프로젝트명>
# 앱 생성
python manage.py startapp <App 이름>

# 서버 실행
python manage.py runserver

# 마이그레이션 생성
python manage.py makemigration

# 데이터베이스 마이그레이트
python manage.py migrate

# 관리자 계정 생성
python manage.py createsuperuser

 

 ┗ db.sqlite3 : 프로젝트에서 사용되는 데이터베이스 파일

 

 - Project App : Django 프로젝트를 위한 여러 파일이 담겨있는 디렉토리

 ┗ __init__.py : __init__.py 파일이 저장된 디렉토리가 파이썬 패키지임을 인식시키는 파일(python3.3 하위호환을 위해 사용된다.)

 ┗ settings.py : Django 프로젝트의 전반적인 설정 관리(앱 사용, 경로, DB, 언어, 시간 등)

  * django에서 새로운 앱(App)을 생성할 경우 Settings.py의 INSTALLED_APPS에 등록하여야 django에서 해당 앱을 인식할 수 있다.(필수)

  * 관련 링크 : https://docs.djangoproject.com/en/2.2/ref/settings/

 ┗ urls.py : 요청되는 url을 확인하여 적절한 로직(View)과 페이지로 연결

 ┗ wsgi.py : WSGI(WebServer Gateway Interface), 웹 서버와 Django의 소통에 필요한 일종의 약속(protocol)

  * 관련 링크 : https://en.wikipedia.org/wiki/Web_Server_Gateway_Interface

 


02. Django 앱의 구조

<App 디렉토리>
 ┗ __init__.py
 ┗ admin.py
 ┗ apps.py
 ┗ migrations/
 	┗ __init__.py
 ┗ models.py
 ┗ tests.py
 ┗ views.py

 - App : 프로젝트에서 기능을 나타내는 단위를 말한다.

 ┗ __init__.py : __init__.py 파일이 저장된 디렉토리가 파이썬 패키지임을 인식시키는 파일(python3.3 하위호환을 위해 사용된다.)

# app 생성시
python manage.py startapp <App 이름>

 ┗ admin.py : 앱과 django 관리자를 연동하거나 기능을 관리하기 위해 설정하는 파일

 ┗ apps.py : 앱에 대한 설정을 관리하는 파일(앱의 기능 및 설정 추가)

  * 관련 링크 : https://docs.djangoproject.com/en/2.2/ref/applications

 ┗ models.py : 앱에서 사용되는 데이터 구조를 정의(DB 연동과 관련), DB와의 소통 담당

 ┗ views.py : 앱의 기능을 구현하기 위한 로직을 처리 및 관리하는 파일

 ┗ test.py : 프로젝트 테스트 코드 사용하기 위한 팡리

 ┗ migrations : django 앱의 데이터 구조 변경사항에 대한 History(migration 파일) 관리

 

 

반응형

댓글