본문 바로가기
학습 내용/Back-End

[freeCodeCamp] Django로 쇼핑몰 만들기 실습 - 1. 프로젝트 생성하기

by yein 2024. 11. 22.
강의 링크: Learn Django by Building an Online Marketplace – Python Tutorial for Beginners

# django-admin

django-admin은 장고 프로젝트 생성 및 관리를 할 때 사용하는 CLI이다. 장고 설치 시 함께 제공되며, 여러 명령어를 통해 장고 프로젝트를 설정, 관리, 디버깅할 수 있도록 한다.

 

## 주요 명령어

django-admin startproject <프로젝트명>

 

=> 새로운 장고 "프로젝트" 디렉토리를 생성

=> 해당 디렉토리에는 프로젝트의 초기 설정 파일, WSGI 설정 파일(wsgi.py) 등이 포함됨.

 

*WSGI(Web Server Gateway Interface): 파이썬 웹 애플리케이션과 웹 서버 간의 표준 인터페이스를 정의한, 파이썬 웹 표준 프로토콜. 파이썬 애플리케이션이 다양한 웹 서버와 상호작용할 수 있도록 설계되었다. Django, Flask 같은 프레임워크들은 WSGI를 통해 웹 서버와 통신한다. (cf. ASGI - 지금 단계에서는 넘어가고 나중에 비동기 기능 개발할 때 알아보자.😗)

WSGI의 작동 원리는 다음과 같다. :

1. 클라이언트가 브라우저를 통해 요청을 보낸다.

2. 웹 서버(Nginx, Apache 등)가 요청을 받는다.

3. WSGI를 통해 요청을 파이썬 애플리케이션에 전달한다.

4. 파이썬 애플리케이션은 요청을 처리한 뒤, WSGI를 통해 HTTP 응답을 웹 서버로 반환한다.

5. 웹 서버가 응답을 클라이언트에게 전달한다.

 

*이 명령어를 통해 생성되는 wsgi.py, asgi.py 파일은 웹 서버 진입 파일이다.

 

django-admin startapp <앱이름>

 

=> 프로젝트 내에서 사용할 새로운 "애플리케이션(앱)" 디렉토리를 생성

=> 여기서 말하는 앱은, 장고 프로젝트의 기능을 나누는 기본 단위다.

 

django-admin makemigrations

 

=> DB 모델 변경사항을 기반으로 마이그레이션 파일을 생성

 

django-admin migrate

 

=> 생성된 마이그레이션 파일을 DB에 적용하여 테이블 구조를 업데이트

 

django-admin runserver

 

=> 개발 서버를 실행

 

django-admin createsuperuser

 

=> 장고의 어드민 페이지에 로그인할 수 있는 관리자 계정 생성

 

# startproject, startapp

$ python manage.py startproject market
$ cd market
$ python manage.py startapp core

 

market이라는 이름의 장고 프로젝트를 만들고, market 프로젝트 안에 core라는 이름의 애플리케이션을 생성한다.

그러면 다음과 같이 market 폴더 안에 core 폴더가 만들어진 모습을 확인할 수 있다.

 

이렇게 앱을 생성했으면 {project}/{project}/settings.py 파일의 INSTALLED_APPS 목록에 방금 생성한 앱의 이름을 추가해줘야 한다.