Django Project, App, settings.py, manage.py

배추·2025년 9월 7일
0

🥷 Django

목록 보기
2/6

Django의 Project와 App의 기본 구조 및 설정 파일, 주요 관리 명령어에 대해 알아봅니다.


▶︎Project와 App

Project

  • 하나의 웹사이트 단위. 웹사이트를 만들기 위해서는 proejct를 생성해야 한다.
  • 하나의 프로젝트는 여러 개의 앱(App)으로 구성된다.
  • 생성: django-admin startproject [프로젝트이름]
    • manage.py 실행파일 생성.
    • 프로젝트 이름으로 폴더가 생성. (settings.py, urls.py, wsgi.py 파일 포함

App

  • 프로젝트 안에서 의미있는 기능 단위.
    • ex) 큰 웹사이트의 게시판 기능, 쇼핑몰 기능 등
    • 앱은 다른 프로젝트에서도 재활용 가능. (한 프로젝트에서 만들어진 내부 app은 다른 프로젝트에서도 하위 app으로 활용 가능.)
  • 생성: ./manage.py startapp [앱이름]
    • app 은 manage.py를 이용해 생성.
    • 앱 이름으로 폴더가 생성.
      - admin.py: 관리자 권한을 가지는 사용자가 볼 수 있는 페이지에 관련된 내용
      - models.py: 데이터베이스 모델 정의
      - tests.py: 테스트 코드 작성
      - views.py: 데이터베이스에서 가져온 데이터를 가공
      - migrations/: 데이터베이스 변경 기록 폴더

▶︎settings.py

: 프로젝트 환경 설정 파일.

  • DEBUG
    • True일 때 디버깅 정보 노출, 개발 중 사용
    • 배포 시에는 False로 설정하여 사용자에게 디버그 정보 노출 방지
  • INSTALLED_APPS
    • 프로젝트에서 사용할 앱들 등록.
    • 직접 만든 앱, pip로 설치한 서드파티 앱 모두 가능.
  • MIDDLEWARE_CLASSES
    • request와 response 사이에서 인증/보안과 관련된 작업 수행.
    • 일반적으로 크게 신경 안써도 된다.
  • TEMPLATES
    • django template 관련 설정. (사용자에게 보여질 화면 구성과 데이터를 관리하는 설정.)
    • 실제 뷰에서 보여줄 html파일과 전달할 변수들 관리.
  • 사용자에게 보여줄 HTML 파일과 전달할 변수(context) 관리.
    - 템플릿 파일 저장 위치 지정.
    - 뷰에서 전달하는 변수들과 템플릿 연결 기능 포함.
  • DATABASES
    • 데이터베이스 연결 설정 (엔진, 주소, 계정 정보 등)
  • STATIC_URL
    • 정적파일(css, javascript, image 등)의 url 경로 설정.

▶︎manage.py

: 프로젝트 관리 명령어 모음. (전체 프로젝트를 관리하고 db를 보다 효과적으로 사용할 수 있도록 다양한 기능을 제공.)

주요 명령어

  • startapp [앱이름]: 앱 생성
  • runserver: 개발용 서버 실행
  • createsuperuser: 관리자 계정 생성
  • makemigrations [앱이름]: 앱 모델 변경사항 감지 후 마이그레이션 파일 생성 (변경사항을 반영하기 위한 데이터베이스 작업을 명령어(쿼리) 형태로 작성한 파일을 만들어 SQL 쿼리를 직접 실행하는 대신, Django가 이해할 수 있는 단계별 데이터베이스 변경 지침서 역할을 함)
  • migrate: 마이그레이션 파일을 데이터베이스에 적용
  • shell: Django 환경에서 파이썬 쉘 실행 (쉘을 통해 데이터 확인, 조작 가능)
  • collectstatic: 여러 앱의 흩어진 정적 파일을 한 곳에 모음
profile
난 🥬

0개의 댓글