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은 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 파일) 관리
'DEV > Web 개발' 카테고리의 다른 글
파이썬 웹 프로그래밍 :: 10월 둘째주 WIL #06 (0) | 2022.10.11 |
---|---|
Web 개발 :: 파이썬 django 인스타그램 클론 코딩_TIL#26 (2) | 2022.10.06 |
Web 개발 :: 파이썬 django 인스타그램 클론 코딩, 회원 탈퇴_TIL#25 (0) | 2022.10.06 |
Web 개발 :: 파이썬 django 인스타그램 클론 코딩, aullauth _TIL#24 (0) | 2022.10.05 |
파이썬 웹 프로그래밍 :: 10월 첫째주 WIL #05 (0) | 2022.10.04 |
댓글