[day-32] 프로젝트 구조

Joohyung Park·2024년 2월 21일
0

[모두연] 오름캠프

목록 보기
59/95

구조

Django 프로젝트 폴더

Django로 만들어진 앱의 기본 세팅을 담당한다.

  • settings.py : DB 정보, 설치된 앱, 미들웨어 등의 기본적인 설정 정보
  • urls.py : 프로젝트의 URL(주소) 패턴이다. 요청과 응답을 처리하는 views(뷰)와 대응
  • wsgi.py : 웹 서버에 배포하기 위해 사용하는 파일
  • __init__.py : 이 파일이 존재하는 폴더(디렉토리)가 패키지로 처리됨을 명시

manage.py

프로젝트를 관리할 때 사용되는 커맨드 라인 인터페이스이다. 이 파일로 DB 마이그레이션, 앱 서버 실행등의 작업을 수행 가능하다. 프로젝트 폴더의 루트 디렉토리에 위치한다.

  • DB 마이그레이션
    • 생성 : python manage.py makemigrations
    • 적용 : python manage.py migrate
  • 서버 실행
    • python manage.py runserver
  • 앱 생성
    • python manage.py startapp
  • 슈퍼 유저 생성(관리자)
    • python manage.py createsuperuser

apps

프로젝트 하위 디렉토리 중 하나로, 각 앱이 위치하는 폴더이다. app 단위로 하위 폴더 구조를 가지며, 각 앱의 구조는 독립적이지만 Django에서는 앱이 유기적으로 연결된다.

  • models.py : DB 모델을 정의하는 파일. DB의 테이블과 같음
  • views.py : HTTP요청을 처리하는 view함수를 포함하는 파일. 요청을 처리하고 DB에서 데이터를 검색하거나 템플릿을 랜더링하여 결과를 반환하는 역할
  • urls.py : 앱의 URL 패턴 정의. HTTP 요청을 처리하는 view함수와 연결
  • admin.py : 앱의 모델을 관리하는 관리자 페이지 정의 파일.
  • test.py : 앱의 유닛 테스트를 정의. 기능을 검증하고, 버그를 차장 수정 가능

migrations

DB의 스키마 변경 내역을 추적하는 도구이다. 나중에 다시 보겠지만 스키마는 DB에 어떤 데이터가 저장되고, 그 데이터들이 어떻게 서로 관련되어 있는지를 설명하는 표현이다.

templates

HTML 템플릿 파일을 저장하는 공간이다. 프로젝트 전체에서 사용할 수 있는 템플릿 폴더를 만들 수 있고, 각 앱별로 사용할 템플릿 폴더를 만들수도 있다.

static

정적 파일(CSS, JS, 이미지)들을 저장하는 공간이다. 프로젝트 전체에서 사용할 수 있고 각 앱별로 사용할 폴더도 만들 수 있다.

media

사용자가 앱에 업로드한 파일들을 저장하는 공간이다. Django 자체는 업로드 파일 자체를 서빙하는 기능을 제공하진 않는다. 따라서 웹 서버나 뷰 함수를 이용해서 서빙해야 한다.

virtual_env

파이썬 가상환경을 사용하는 경우에 존재한다. 아나콘다의 경우에는 해당되지 않는다.

profile
익숙해지기 위해 기록합니다

0개의 댓글