코딩한걸음
Published 2023. 4. 26. 16:51
[DRF] 프로젝트 세팅 Python/Django
728x90
반응형
💡
이 포스팅은 window, vscode 기준으로 작성되었습니다. 안보일 경우 우측하단의 버튼을 눌러 라이트모드로 바꿔주세요!

1. 프로젝트 세팅

1.1. 가상환경 만들고 패키지 설치하기

원하는 곳에 프로젝트 디렉토리를 만들고 그 디렉토리로 이동한다

새로운 프로젝트를 만들 때 습관처럼 만든다

<code />
## console python -m venv venv # 환경이 만들어진 후 가상환경 활성화 venv\Script\activate # 활성화가 됬다면 한번 확인해보자 pip list # 가상환경 비활성화는 deactivate

설치된 패키지가 2개만 있다면 정상 작동하는 것이다

django와 drf도 설치

<code />
## console pip install django pip install djangorestframework

이 프로젝트의 환경을 따로 저장해놓자

앞으로 프로젝트에 필요한 패키지를 인스톨하면 항상 습관처럼 해야한다

<code />
## console pip freeze > requirements.txt # requirements.txt로 관리하면 다른 컴퓨터에서 새로 가상환경을 만들어도 # 다음 명령어로 프로젝트에 필요한 패키지들을 한번에 받을 수 있다 pip install -r requirements.txt

1.2. Github setting

프로젝트의 버전을 git으로 관리하는 습관을 갖자

Github에서 repository를 하나 만들고 연동

<code />
## console echo "# drf_project_review" >> README.md git init git add README.md git commit -m "first commit" git branch -M main git remote add origin https://github.com/raoneli1013/drf_project_review.git git push -u origin main

연동이 된 것을 확인하자

추가로 gitignore.io 에 접속해서 .gitignore를 생성

루트폴더에 .gitignore를 만들고 그 안에 내용을 넣어주자

1.3. Django setting

먼저 장고 프로젝트를 만드는 방법은 두가지가 있다

<code />
## console # 끝에 . 을 찍으면 현재 디랙토리에 main.py가 생긴다 django-admin startproject drf_project . # 끝에 . 을 찍지 않으면 drf_project폴더가 생기고 그 안에 main.py가 생긴다 django-admin startproject drf_project

일반적으론 가상환경이 셋팅 된 곳에 바로 main.py가 있는 것이 좋다

그래서 처음 세팅할 때에 디렉토리를 만들고 가상환경을 만들었다

즉 이 상황에선 . 을 찍는 것이 맞다

<code />
## console django-admin startproject drf_project .

루트 폴더와 프로젝트 이름이 같으면 햇갈릴 수 있다는것을 깨달았다

위에서 설치한 restframework를 INSTALLED_APPS 에 추가하고 언어와 시간을 설정한다

<code />
## drf_project/settings.py INSTALLED_APPS = [ ... 'rest_framework', ] LANGUAGE_CODE = "ko-kr" TIME_ZONE = "Asia/Seou"

Github에 연동하기 때문에 보안에 걸릴만한 요소는 차단하자

루트폴더에 secrets.json을 만들고 그 안에 settings.py에 있는 SECRET_KEY를 넣는다

<code />
## secrets.json { "SECRET_KEY": "여기에 키값을 넣는다" }

<code />
## drf_project/settings.py import os, json from django.core.exceptions import ImproperlyConfigured BASE_DIR = Path(__file__).resolve().parent.parent secret_file = os.path.join(BASE_DIR, 'secrets.json') # secrets.json 파일 위치를 명시 with open(secret_file) as f: secrets = json.loads(f.read()) def get_secret(setting): """비밀 변수를 가져오거나 명시적 예외를 반환한다.""" try: return secrets[setting] except KeyError: error_msg = "Set the {} environment variable".format(setting) raise ImproperlyConfigured(error_msg) SECRET_KEY = get_secret("SECRET_KEY")

이렇게 코드를 작성하면 루트 디렉토리에 잇는 secrets.json 파일을 읽어서 장고가 사용할 수 있다

그리고 .gitignore에 secret.json을 추가하면 끝

<code />
## .gitignore ... secrets.json ...

마지막으로 실행이 잘 되나 확인

<code />
## console python manage.py

DB파일인 db.sqlite3가 생성됨과 동시에 서버가 작동한다

중간에 에러로 뭐라뭐라뜨는데 migrate 안해서 그런거니 일단 무시

http://127.0.0.1:8000/ 로 들어가서 작동 확인

이 페이지가 뜨면 성공

마지막으로 Github로 push하자

<code />
## console git add . # 업로드 하기 전에 secrets.json이 포함됬는지 한번 더 확인 git status git commit -m "1st drf commit" git push

시작이 반이니깐 이제 프로젝트 50%는 끝났다


Uploaded by N2T

728x90
반응형
profile

코딩한걸음

@Joonyeol_Yoon

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!