Django 프로젝트/앱 생성하기

4598 단어 djangodjango

이번 블로깅에선 Django 프로젝트를 생성해보겠습니다.
환경은 Windows 10, VScode를 사용합니다.

DB는 MySQL을 사용할 예정이고, Django Rest Framework의 Serializer를 중점으로
백엔드 API 설계/작성 방법을 다룰 예정입니다.

Git Bash를 설치하시면 windows의 VScode에서 python 터미널을 사용할 수 있습니다.


step 1.

Ctrl + ` 버튼(숫자 1 왼쪽버튼) 누르시면 터미널 창이 뜨고,
터미널 창 우측 상단의 +버튼 옆의 아래 화살표를 누르시면 터미널 환경을 변경 할 수 있습니다.
Git Bash 선택하시면 Python 명령어 사용 가능합니다!


step 2.

python은 보통 가상환경에 module들을 저장하고 사용하기 때문에 가상환경부터 생성하겠습니다.
  • 가상환경 만들기
python -m venv [가상환경 이름]

명령어를 입력하면 잠시 후에 입력한 이름의 폴더가 생성됩니다.


step 3.

  • 가상환경 실행
source [가상환경 이름]/bin/activate - mac
source [가상환경 이름]/Scripts/activate - windows

가상환경이 실행되면 (가상환경 이름) 문구가 명령 줄 왼쪽 상단에 나타납니다!


step 4.

  • django 설치
pip install django


step 5.

  • Django 프로젝트 생성
django-admin startproject [프로젝트명]

프로젝트 폴더가 생성 됩니다!


step 6.

  • 프로젝트로 이동
cd [프로젝트명]


step 7.

현재 폴더에는 프로젝트 루트폴더만 존재하고있습니다.
장고는 주로 기능에 따라 폴더를 분류합니다. 기능에 따른 폴더를 앱(app)이라고 부릅니다.

  • 앱 만들기
python manage.py startapp [앱 이름]

앱을 생성하면 앱 이름으로 폴더가 생성됩니다. 기존 루트폴더와는 구성이 약간 다릅니다.

대략적으로 기본 파일의 역할에 대해 설명해드리면

  • 루트폴더의 settings.py

    • 프로젝트와 관련된 전반적인 설정사항을 작성합니다.

  • 앱 폴더의 views.py

    • 서버상에서 동작시키고 싶은 기능을 작성하는 파일입니다.
    • 장고의 View는 CBV(클래스 기반 뷰)와 FBV(함수 기반 뷰)로 나뉘는데, 저는 CBV를 위주로 다룰 예정입니다.

  • 루트 폴더의 urls.py

    • 일반적으로 다른 앱에서 작성한 urls.py를 불러오는 역할을 합니다.(앱 생성시 기본적으로 앱 폴더에 설치되지 않기 때문에, 수동으로 생성해야합니다.)
    • 실제로 서버를 실행시킬때 루트의 urls.py에 포함된 url만 실행됩니다.
    • views.py에 정의한 View와 사용자에게 보여지는 화면을 url 엔드포인트에 매핑시키는 역할입니다.(라우팅 역할)

  • 앱 폴더의 models.py

    • DB테이블과 매핑을 시켜주는 파일입니다. 데이터베이스 모델ㄹ
    • 장고는 ORM을 지원합니다. 따라서 SQL문법을 몰라도 데이터베이스를 다룰 수 있지만, 내가 작성한 코드가 어떤 SQL문법을 생성하는지 검증을 할 수 있다면 더 뛰어난 개발자가 될 수 있습니다!

  • 앱 폴더의 tests.py

    • 테스트 코드를 작성하는 파일입니다.

step 8.

데이터 베이스 설정값 반영

python manage.py migrate

첫 프로젝트 생성후 migrate를 수행하면 장고에서 디폴트로 제공되는 테이블들이 생성됩니다.

이후에는 models.py에 새로운 모델을 작성하는것은 물론이고,
기존에 작성된 모델을 삭제, 수정할 때 수행해야 합니다.

migrate를 하기 위해선 migrations 파일이 필요하기 때문에,
첫 프로젝트 생성을 제외하고는 모델에 변경사항이 있으면

  • 마이그레이션 생성 => 마이그레이트의 과정을 거칩니다.
python manage.py makemigrations  =>  python manage.py migrate

migrate를 하면 모델에 작성한 내용이 DB에 전달됩니다!
현재 default DB인 sqlite3을 사용하기 때문에 폴더 내에 db.sqlite3 파일이 생성됐습니다.


step 9.

서버 실행

python manage.py runserver

해당 명령어를 치면 local 서버가 작동됩니다.

터미널의 http://127.0.0.1:8000/를 Ctrl버튼 + 마우스 왼쪽 클릭하시면
장고 기본 서버가 작동되는것을 확인하실 수 있습니다!

이후 서버 종료는 Ctrl + c 버튼을 누르시면 됩니다!

여기까지 장고 프로젝트/앱 생성 과정이였습니다.
다음 포스팅에서는 사용 DB를 MySQL로 변경하고 간단한 유저 모델과 유저 모델을 참조하는 게시판 모델을 만들어 MySQL에 테이블을 생성해보겠습니다.
또한 Django Rest Framework를 이용해 모델을 serializing 하고, CBV를 생성해 회원가입, 글 작성 기능을 수행해보겠습니다.

좋은 웹페이지 즐겨찾기