django-admin startproject 프로젝트 이름
해당 명령어를 실행하면 아래 사진과 같은 디렉토리가 생성된다.

이제 생성된 파일들이 무엇인지 하나씩 살펴보자
- Django 프로젝트의 실행 및 관리를 도와주는 명령어 라인 유틸리티
- 이 파일을 통해 개발 서버 실행, 마이그레이션 실행, 앱 생성 등 다양한 명령을 수행 할 수 있음
- 예를 들어 아래와 같은 명령어들을 수행 할 수 있음
개발 서버 실행: python manage.py runserver
마이그레이션 생성: python manage.py makemigrations
마이그레이션 적용: python manage.py migrate
슈퍼유저 생성: python manage.py createsuperuser
- Python 패키지로 인식되도록 하는 파일
- 이 파일이 존재한다면 Python에서 패키지로 처리되며 다른 모듈에서 임포트할 수 있음
- Django 프로젝트의 설정 파일
- 데이터베이스 설정, INSTALLED_APPS, 언어 및 시간대 설정, 정적 파일 경로 설정 등이 여기에 포함
- settings.py 설정 파일의 주요 항목
프로젝트 기본 경로 설정
보안 설정
애플리케이션 정의
미들웨어 설정
URL 및 WSGI 설정
템플릿 설정
데이터베이스 설정
비밀번호 유효성 검사
국제화 및 시간 설정
정적 파일 설정
기본 키 설정
- 프로젝트의 URL 라우팅 설정 파일
- 이 파일에서 URL 패턴을 정의하고 각 URL에 대한 뷰(view)를 매핑
from django.contrib import admin
from django.urls import path
urlpatterns = [
path('admin/', admin.site.urls),
]
* WSGI는 Python 웹 애플리케이션과 웹 서버 간의 표준 인터페이스
* WSGI는 웹 서버와 애플리케이션 사이에 미들웨어 역할
* WSGI는 동기 함수 처리만을 지원
`Django 프로젝트를 WSGI (Web Server Gateway Interface)로 실행하기 위한 설정 파일`
** https://velog.io/@qlgks1/Django-WSGI-ASGI-%EB%B0%B0%ED%8F%AC-python 참조
* ASGI는 비동기 웹 서버 및 애플리케이션과 연결할 수 있는 표준 인터페이스
`Django 프로젝트를 WSGI (Web Server Gateway Interface)로 실행하기 위한 설정 파일`
WSGI를 선택하는 경우
전통적인 HTTP 요청/응답 기반의 동기적인 웹 애플리케이션 개발 시.
기존 배포 환경(예: Gunicorn, uWSGI)에서 운영하는 경우.
비동기 기능(웹소켓 등)이 필요 없는 경우.
ASGI를 선택하는 경우
웹소켓을 사용하는 실시간 채팅 애플리케이션.
비동기 API 호출, 데이터 스트리밍, 또는 실시간 알림이 필요한 경우.
최신 비동기 Python 웹 서버(예: Daphne, Uvicorn)를 사용하고자 하는 경우.