본문 바로가기
Programming/Django

[Django] 1. 폴더 구조, App 생성, runserver 실행까지

by Mandy's 2025. 7. 20.

✅ 1. Django 초기 폴더 구조 및 역할

  • manage.py
    • Django 프로젝트를 관리하는 커맨드라인 툴
    • 일반적으로 변경하지 않음
    • ex) 서버 실행, 마이그레이션 명령 등 수행
  • asgi.py, wsgi.py
    • Python 웹 서버와 Django 앱 사이 연결 담당
    • ASGI: 비동기, WSGI: 동기 → 실서비스에서는 WSGI 또는 ASGI 서버와 함께 사용됨
  • urls.py, settings.py
    • 프로젝트 전체 설정과 라우팅에 가장 자주 수정되는 파일
    • urls.py: URL → View 연결
    • settings.py: 앱 등록, DB 설정, static 경로 등 관리

✅ 2. runserver 실행 및 결과

python manage.py runserver
  • StatReloader: 코드 수정 시 자동으로 서버 재시작
  • 미적용 마이그레이션 경고:
  • “You have 18 unapplied migration(s)...”
    → python manage.py migrate로 반영
  • 서버 주소: http://127.0.0.1:8000/
  • 주의사항: 개발용 서버이며, 실 서비스에는 사용 X

✅ 3. db.sqlite3 파일

  • Django의 기본 SQLite DB 파일
  • migrate 명령 시 자동 생성
  • 개발 초기에는 크게 신경 쓰지 않아도 됨

✅ 4. Django App 개념

  • Django는 Module 대신 App이라는 단위로 기능을 나눔
  • 하나의 프로젝트(mypage) 아래 여러 앱을 생성 가능 (ex. challenges, products, cart 등)

예시:

  • Google → 검색, 지도, Gmail (각각 앱 개념)
  • Amazon → 쇼핑몰, 뮤직, 프라임 비디오 (각각 앱 개념)
  • 프로젝트 단위: mypage
  • 앱 단위: challenges (기능별로 생성)

App은 프로젝트의 빌딩 블록


✅ 5. App 구조 내 주요 파일

  • admin.py
    • 관리자 페이지 관련 설정
    • 모델을 등록해 관리 페이지에서 보기 가능
    • "엄청 중요한 파일" → 커스터마이징도 가능
  • models.py
    • DB 구조 정의 (테이블처럼 생각)
    • Django ORM을 통해 SQL 없이 DB 다룸
  • views.py
    • 사용자에게 보여지는 로직
    • 클라이언트 요청 → 어떤 데이터를 보여줄지 결정
    • 템플릿과 연결되기도 함

📝 요약 정리

구성 요소 설명

manage.py Django 프로젝트 관리 명령
settings.py 앱 등록, DB 등 전역 설정
urls.py URL과 view 연결
asgi.py/wsgi.py 서버 인터페이스 파일
db.sqlite3 기본 제공되는 SQLite DB
App 기능 단위로 쪼갠 소규모 모듈
admin.py 관리자 페이지 설정
models.py DB 구조 정의
views.py 유저에게 보여주는 로직 구현