TIL 12: Django 초기 세팅

11594 단어 WeCodeWeCode

가상환경 생성

conda create -n "가상환경 이름" python=3.8
conda activate "가상환경 이름"

Database 생성

$ mysql -u root -p


mysql> create database NAME character set utf8mb4 collate utf8mb4_general_ci;

Project Python Package 설치

$ pip install django

이후에 MySQL server에 접속하기 위한 package
$ pip install mysqlclient
(중요) mysql 설치되어 있는지 먼저 확인해주세요

Django Project 생성

$ django-admin startproject westarbucks
$ cd westarbucks

Settings.py 설정

IP 허용

ALLOWED_HOSTS = ['*']

주석처리 (admin, csrf, auth)

추가로 westarbucks/urls.py를 아래와 같이 수정해주세요.

from django.urls import path
urlpatterns = [
]

my_settings.py 생성 (DATABASES, SECRET_KEY)

  • 장고 설정에 존재하는 내용 중 SECRET_KEY, DATABASE 등은 소스로서 공유해야 하는 내용이 아닙니다. 별도의 파일 혹은 환경변수로서 관리하는게 좋습니다.
  • settings.py에 바로 저장되는 방식은 지양해야 합니다.
  • wecode 에서는 별도의 참조용 파이썬 파일(my_settings.py)을 생성해서, 참조하는 방법으로 진행합니다.
cd '생성한 프로젝트 폴더명'
touch 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 = '시크릿키' #settings.py에 있는 secret_key 를 사용합니다.

settings.py ↔ my_settings.py 연동

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

corsheaders

pip install django-cors-headers

설치했다면 settings.py에 INSTALLD_APPS 안에 추가해줘야합니다.

INSTALLED_APPS = [
...
		'corsheaders'
]

middleware도 추가해야합니다.

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',
		#만약 허용해야할 추가적인 헤더키가 있다면?(사용자정의 키) 여기에 추가하면 됩니다.
)

서버 동작(Runserver)을 통한 오류 검증

python manage.py runserver

정상 동작 예시

git 초기화

생성한 장고 프로젝트를 git으로 관리할 수 있도록 초기화 한다.

  • manage.py 가 위치한 곳으로 이동
  • git init 명령어로 git 초기화
git init

.gitignore 생성

  • 소스를 공유하기 위해 깃을 사용하지만 올리고 싶은것 올리고 싶지 않은것, 올려서는 안되는 것들이 존재합니다. 이를 구분하기 위해 깃이 설치된 디렉토리에 .gitignore파일을 생성해서 관리해야 합니다.
  • 아래 사이트에서 사용하는 환경에 해당하는 키워드를 선택하면, 자동으로 .gitignore 파일에 정의할 요소들을 생성 해줍니다.

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

  • 아래 키워드를 추가 후 Create 를 해주세요.

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

  • Create 하여 나온 내용을 .gitignore 파일 생성 후, 붙여넣기

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

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

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

add & commit

git add .
git commit -m "Add: Django Project Setting"

Branch

  • Branch & Application 생성

    1. Branch 생성

      • feature/crud 브랜치를 생성 & 이동

        git branch 브랜치 이름 # 브랜치 생성
        git checkout 브랜치 이름 # 해당 브랜치로 이동 
        
        # 생성과 동시에 이동하는 방법
        git checkout -b 브랜치 이름
    2. Application 생성

      • settings.py 설정 후 app 생성

        $ python manage.py startapp products
      • settings.py installed_apps 추가

        # settings.py
        
        INSTALLED_APPS = [
        	...
        	'products', 
    3. Github Push

      • git add & commit

        git add .
        git commit -m "Add: products application"
      • Github repository branch push

        git push origin "브랜치 이름"

좋은 웹페이지 즐겨찾기