Django C.R.U.D 1 - (1) 초기 세팅, Git & Github 연결

minch·2021년 7월 16일
3

Django

목록 보기
5/16
post-thumbnail

Starbuck 홈페이지에 나와있는 상품들을 바탕으로 쓰여진 ERD를 바탕으로,

클래스를 작성하고, Django Model을 활용하여 Database에 table을 생성,
Django Shell에서
QuerySet API를 이용하여 데이터를 생성(C), 조회(R), 수정(U), 삭제(D)하여 보자.

Django Project 초기 세팅

일단 conda를 이용하여 가상환경을 생성한다.

conda create -n westarbucks python=3.9
conda activate westarbucks

'westarbucks'라는 가상환경을 만들고, 실행해주었다.

그 후 mysql를 이용하여 Database를 생성한다.

mysql -u root -p
mysql> create database westarbucks character set utf8mb4 collate utf8mb4_general_ci;

마찬가지로 'westarbucks'라는 이름의 Database를 생성해주고,
한글이 깨지는 것을 막기위해 속성을 설정해주었다.

그리고 Django와 mysql server에 접속하기 위한 package를 설치해준다.

pip install django
pip install mysqlclient

설치가 끝나면, Project를 생성하고 싶은 디렉토리로 이동한 다음

django-admin startproject westarbucks

Project 생성 후 디렉토리 안으로 이동한다.

Setting 설정

Project의 setting을 설정해주어야 하는데,
일단 Project 내부의 settings.py를 찾아서 다음과 같이 변경한다.

ALLOWED_HOSTS = ['*'] # 모든 IP를 허용
INSTALLED_APPS = [
   #  'django.contrib.admin',
   #  'django.contrib.auth',
      'django.contrib.contenttypes',
      'django.contrib.sessions',
      'django.contrib.messages',
      'django.contrib.staticfiles',
      'corsheaders',
      'products',
  ]
 
  MIDDLEWARE = [
      'django.middleware.security.SecurityMiddleware',
      'django.contrib.sessions.middleware.SessionMiddleware',
      'django.middleware.common.CommonMiddleware',
   #  'django.middleware.csrf.CsrfViewMiddleware',
   #  'django.contrib.auth.middleware.AuthenticationMiddleware',
      'django.contrib.messages.middleware.MessageMiddleware',
      'django.middleware.clickjacking.XFrameOptionsMiddleware',
      'corsheaders.middleware.CorsMiddleware',
  ]
  # 기본 내장된 admin과 csrf, auth를 주석처리

변경이 완료되면, westarbucks/urls.py 파일도 수정해준다.

westarbucks/urls.py

from django.urls import path

urlpatterns = [
]

my_settings.py 생성

settings.py에 존재하는 SECRET_KEY, DATABASES 등은 공유할 사항이 아니기 때문에 별도의 파일을 만들어서 관리하는 것이 좋다.

그래서 manage.py가 있는 디렉토리로 이동 후,
별도의 my_settings.py를 만들어 다음과 같이 입력한다.

DATABASES = {
    'default' : {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'DATABASE 명',
        'USER': 'DB접속 계정명',
        'PASSWORD': 'DB접속용 비밀번호',
        'HOST': '127.0.0.1',
        'PORT': '3306',
    }
}

SECRET_KEY = '시크릿키'  # setting.py 내 SECRET_KEY 사용

그 후 settings.py를 열어 my_settings.py와 연동해준다.

settings.py

from pathlib        import Path #기존에 settings.py 에 있는 코드
from my_settings    import DATABASES, SECRET_KEY

...

DATABASES = DATABASES

SECRET_KEY = SECRET_KEY

마지막으로 통신이 발생할때,
Cross Domain 이슈를 막기 위해 corsheaders를 설정 해주어야한다.

pip install django-cors-headers

django-cors-headers 라이브러리를 받은 다음

Project의 settings.py를 열어,

INSTALLED_APPS = [
...
		'corsheaders'
]

MIDDLEWARE = [
	...
		'corsheaders.middleware.CorsMiddleware',
	...
]
...
...
#REMOVE_APPEND_SLASH_WARNING
APPEND_SLASH = False

##CORS
CORS_ORIGIN_ALLOW_ALL=True
CORS_ALLOW_CREDENTIALS = True

CORS_ALLOW_METHODS = (
    'DELETE',
    'GET',
    'OPTIONS',
    'PATCH',
    'POST',
    'PUT',
)

CORS_ALLOW_HEADERS = (
    'accept',
    'accept-encoding',
    'authorization',
    'content-type',
    'dnt',
    'origin',
    'user-agent',
    'x-csrftoken',
    'x-requested-with',
		#만약 허용해야할 추가적인 헤더키가 있다면?(사용자정의 키) 여기에 추가하면 됩니다.
)

위와 같이 입력해주면 모든 설정이 완료된다!

제대로 설정됬는지 확인하기 위해 서버를 실행시켜,

python manage.py runserver

오류 없이 정상적으로 작동되면 제대로 설정이 완료된 것이다.

Git 초기화 & Github 연결

Git 초기화

위에서 생성한 Project를 git을 이용하여 관리할 수 있도록 초기화 한다.

manage.py가 있는 디렉토리에서,

git init

으로 git을 초기화 시킨 다음에,

.gitignore 파일을 먼저 작성한다.

.gitignore

앞서 생성하였던 my_settings.py와 같이 공유하면 안되는 것들을 구분하기 위해 .gitignore 파일을 만들어 관리하는 것이다

먼저, gitignore사이트 에 접속하여
아래와 같은 키워드들을 추가하고 Create 를 한다.
|| python, pycharm, VisualStudioCode, vim, macOS, Linux, zsh... ||

그리고 그 내용들을 .gitignore 파일을 열어서

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

# 관리할 파일들 추가 #
my_settings.py

위와 같은 식으로 입력하면 완료된다.

그리고 초기셋팅한 것을 git에 기록한다.

git add .
git commit "CREATE: 프로젝트 초기 셋팅"

Git Repository 생성 & 연동

생성한 git을 github에 연동하기 위해
github 사이트에서 westarbucks라는 repository를 만들었다.

그리고 컴퓨터의 default branch를 master에서 main으로 변경한다.
(master라는 단어가 신분제도의 잔재이기 때문에..)

git branch -M main

다음으로 repository 주소를 remote 한다.

git remote add origin repository 주소

마지막으로 위에서 기록한 초기셋팅을 main branch github에 push한다.

git push origin main

모든 과정을 마치면, github에 다음과 같이 main branch에 초기셋팅이 추가된다.

1개의 댓글

comment-user-thumbnail
2021년 7월 20일

민님, 엄청 깔끔하게 정리 잘 해두셨네요 ㅎㅎ
아직 대화를 나눠보진 못했지만, 23기 동기입니다 ㅋㅋㅋㅋ 기초환경 설정에서 애를 먹다가
민님 포스팅 보면서 틀린 내용을 찾아낼 수 있었어요 🙂 좋은 포스팅 감사합니당!

답글 달기