TIL | Django - 스타벅스 모델링하기(django A to E) - 1

송치헌·2021년 8월 16일
1

TIL | Wecode - Django

목록 보기
5/18
post-thumbnail

💡해당 포스트는 MacOSX, Django, mySQL, iterm2 터미널, vim에디터, google chrome 등을 이용하고 있습니다. 사용하는 프로그램이 다를 경우 해당 글과 다른 결과가 나올 수 있음을 알려드립니다.💡

스타벅스 커피를 데이터베이스로 모델링하여 장고로 값을 입력하는 단계까지 진행한다. A to Z 까지는 아니고 A to E 정도는 되는 것 같다.

Django 초기 Settings


  1. 먼저 프로젝트를 진행할 폴더를 만들어서 들어가 준다.
  1. 가상환경을 생성해준다.

    마지막에 'Proceed ([y]/n)?' 이 나오면 y를 입력해서 가상환경을 생성하면 된다.
    그리고 나서 바로 conda activate <가상환경 이름> 을 명령어로 입력하여 가상환경을 활성화시켜 준다.
  1. 프로젝트에 사용할 데이터베이스를 생성해준다(필자는 MySQL을 사용).

    패스워드를 입력한 후 mySQL CLI(Command Line Interface)에 들어가서 DB생성

    create database <사용할 데이터베이스 이름> character set utf8mb4 collate utf8mb4_general_ci;
    참고로 utf8bb4는 이모지🎃를 사용할 수 있는 character set이다.
  1. project python package 설치
pip install django
pip install mysqlclient

두개를 설치해 준다. 두번째는 꼭 mysql이 설치되어 있어야 한다.

  1. django project 생성
django-admin startproject westarbucks02
cd westarbucks02

만들고 싶은 디렉터리 이름으로 설정하면 된다.

  1. settings.py 설정


    ALLOWED_HOSTS부분을 찾아서 빈 []안에 '*'를 넣어준다.
    그 다음 INSTALLED_APPS의 첫번째, 두번째 값을 주석 처리,
    MIDDLEWARE의 네번째, 다섯번째 값을 주석 처리 해준다.
  1. urls.py 설정

    urls.py 파일이 위 사진과 같게 수정한다(추가하는 것이 아니라 딱 위 사진과 동일하게 만들어 주면 된다).
  1. my_settings.py 설정

    settings.py가 있는 디렉터리에서 touch명령어로 my_settings.py 파일을 생성 후 vim으로 해당 파일 작성해 준다.
    my_settings.py파일을 vim으로 열고 나면 빈 화면이 나타나는데 다음을 작성해 준다.
DATABASES = {
    'default' : {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'DATABASE 명',
        'USER': 'DB접속 계정명',
        'PASSWORD': 'DB접속용 비밀번호',
        'HOST': '127.0.0.1',
        'PORT': '3306',
    }
}

SECRET_KEY = '시크릿키' #settings.py에 있는 secret_key 를 사용합니다.

NAME : 위에서 만든 데이터베이스 이름을 적어준다.
USER : 데이터베이스를 사용하는 사용자 이름을 적어준다. 보통 'root'로 되어있을 것이다.
PASSWORD : mySQL에 접속할 때 사용하는 비밀번호를 적어준다.
그 외 나머지는 그대로 냅두면 된다.

  1. settings.py에 my_settings.py 파일 연동
from pathlib import Path #기존에 있던 코드
from . my_settings import DATABASES, SECRET_KEY #새로 추가할 코드
...
SECRET_KEY = SECRET_KEY
...
DATABASES = DATABASES

settings.py파일을 찾아서 vim으로 위와 같이 수정해 준다.
from my_settings ... 이 부분을 추가해 주고, 아래 내용 중에 SECRET_KEYDATABASES부분을 찾아서 위와 같이 적용해 준다.

  1. corsheaders설치 및 적용

    다시 터미널로 빠져나와서 다음과 같이 pip install django-cors-headers라고 입력해 준다.

    corsheaders란 웹 페이지 상의 한정된 리소스를 다른 도메인으로 부터 요청할 때 필요한 HTTP 추가 헤더이다.
    더 쉽게 얘기하면 다른 서버의 도메인에서 사진을 가져와서 웹 서비스를 할 때 또 다른 서버에서 이 데이터에 접근해서 API를 호출하면 안되기 때문에 CORS보안 이슈를 일으킨다.
    (막상 설명하고 보니 쉽게 들리진 않는다.) 쉽게 정리된 글이 있으니 여기서 이해하는게 더 빠르다.

설치가 완료되었으면 settings.py에 들어가서 INSTALLED_APPS 부분에 corsheaders를 추가하고 MIDDLEWARE에도 다음과 같이 추가해 주면 된다.
가장 아래 corsheaderscorsheaders.middleware.CorsMiddleware를 각각 추가해 주었다. 마지막으로 허용할 헤더, 메소드, 포트 등을 설정하면 된다. settings.py 가장 마지막 부분에 다음을 추가해 준다.

이제 다시 manage.py가 있는 곳으로 가서 서버를 실행시켜 본다.

이제 http://127.0.0.1:8000/을 브라우저의 주소창에 입력하거나 터미널에서 저 URL을 'command'키를 누른 상태로 클릭하면 다음과 같이 창이 뜰 것이다. 저 로켓이 안뜨면 뭔가 오류가 있는 것이다.

Git & Github

  1. git 초기화

    다음과 같이 manage.py 파일이 있는 곳으로 가서 git init명령어를 입력해 준다. 현재 프로젝트 폴더를 git으로 관리하겠다는 뜻이다.
  1. .gitignore 파일 생성

    https://www.toptal.com/developers/gitignore

여기서 다음 키워드를 입력해서 추가해 준다.

python, pycharm, VisualStudioCode, vim, macOS, Linux, zsh

그 후 Create하여 나온 내용을 프로젝트 폴더로 들어가서 .gitignore라는 파일을 만들고 파일 안에 전체 내용을 복사 붙여넣기 한다.

cd '프로젝트 폴더명'
touch .gitignore
vim .gitignore

############################
# gitignore.io 결과 전체 복사 #
############################

# 가장 하단 my_settings.py 추가하기
my_settings.py (보안 관련 파일은 github에 업로드되면 안됩니다.)

가장 하단에 my_settings.py라고 적어준다.

  1. master branch push하기
    다음 순서를 잘 따라오기 바란다.
    1. manage.py파일이 있는 폴더로 간다.
    2. git add .
    3. git commit -m "Add: First Commit"
    4. github 홈페이지에 가서 New repository 생성
    5. 다시 터미널로 와서 git remote add origin <레포지토리 주소>
    6. git push origin master
    순서대로 입력하고 github에 가서 해당 레포지토리 페이지를 새로고침하면 작성한 프로젝트가 잘 올라가져 있는 것이 보일 것이다.
profile
https://oraange.tistory.com/ 여기에도 많이 놀러와 주세요

0개의 댓글