프로젝트 세팅
가상환경 만들고 패키지 설치하기
원하는 곳에 프로젝트 디렉토리를 만들고 그 디렉토리로 이동한다
새로운 프로젝트를 만들 때 습관처럼 만든다
## console
python -m venv venv
# 환경이 만들어진 후 가상환경 활성화
venv\Script\activate
# 활성화가 됬다면 한번 확인해보자
pip list
# 가상환경 비활성화는
deactivate
django와 drf도 설치
## console
pip install django
pip install djangorestframework
이 프로젝트의 환경을 따로 저장해놓자
앞으로 프로젝트에 필요한 패키지를 인스톨하면 항상 습관처럼 해야한다
## console
pip freeze > requirements.txt
# requirements.txt로 관리하면 다른 컴퓨터에서 새로 가상환경을 만들어도
# 다음 명령어로 프로젝트에 필요한 패키지들을 한번에 받을 수 있다
pip install -r requirements.txt
Github setting
프로젝트의 버전을 git으로 관리하는 습관을 갖자
Github에서 repository를 하나 만들고 연동
## 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를 만들고 그 안에 내용을 넣어주자
Django setting
먼저 장고 프로젝트를 만드는 방법은 두가지가 있다
## console
# 끝에 . 을 찍으면 현재 디랙토리에 main.py가 생긴다
django-admin startproject drf_project .
# 끝에 . 을 찍지 않으면 drf_project폴더가 생기고 그 안에 main.py가 생긴다
django-admin startproject drf_project
일반적으론 가상환경이 셋팅 된 곳에 바로 main.py가 있는 것이 좋다
그래서 처음 세팅할 때에 디렉토리를 만들고 가상환경을 만들었다
즉 이 상황에선 . 을 찍는 것이 맞다
## console
django-admin startproject drf_project .
위에서 설치한 restframework를 INSTALLED_APPS 에 추가하고 언어와 시간을 설정한다
## drf_project/settings.py
INSTALLED_APPS = [
...
'rest_framework',
]
LANGUAGE_CODE = "ko-kr"
TIME_ZONE = "Asia/Seou"
Github에 연동하기 때문에 보안에 걸릴만한 요소는 차단하자
루트폴더에 secrets.json을 만들고 그 안에 settings.py에 있는 SECRET_KEY를 넣는다
## secrets.json
{
"SECRET_KEY": "여기에 키값을 넣는다"
}
## 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을 추가하면 끝
## .gitignore
...
secrets.json
...
마지막으로 실행이 잘 되나 확인
## console
python manage.py
DB파일인 db.sqlite3가 생성됨과 동시에 서버가 작동한다
중간에 에러로 뭐라뭐라뜨는데 migrate 안해서 그런거니 일단 무시
http://127.0.0.1:8000/ 로 들어가서 작동 확인
이 페이지가 뜨면 성공
마지막으로 Github로 push하자
## console
git add .
# 업로드 하기 전에 secrets.json이 포함됬는지 한번 더 확인
git status
git commit -m "1st drf commit"
git push
시작이 반이니깐 이제 프로젝트 50%는 끝났다
Uploaded by N2T