Django 초기환경 세팅

seyong·2021년 11월 21일
0
post-thumbnail

Django 는 무엇일까?

  • 파이썬으로 만들어진 무료 오픈소스 웹 애플리케이션 프레임워크(web application framework)

  • 쉽고 빠르게 웹사이트를 개발할 수 있도록 돕는 구성요소로 이루어진 웹 프레임워크

  • 보안이 우수하고 유지보수가 편리한 웹사이트를 신속하게 개발하는 하도록 도움을 주는 파이썬 웹 프레임워크

		       [Django의 각 위치 및 기능 그리고 전반적인 흐름] 

Django 초기환경 세팅

1. 가상환경 생성

  • 프로젝트 마다 독립적인 패키지의 관리를 위해 새로운 가상환경을 생성해서 사용
# 가상환경 생성 
conda create -n "가상환경 이름" python=3.8   ---> 가상환경 생성
conda activate "가상환경 이름"  ---> 가상환경을 선택하여 접속

2. Database 생성

  • 여기서는 mysql 을 설치하여 사용함
$ mysql -u root -p
mysql> create database NAME character set utf8mb4 collate utf8mb4_general_ci;

3. Project Python Package 설치

$ pip install django

# 이후에 MySQL server에 접속하기 위한 package

$ pip install mysqlclient
  (M1을 사용하시는 분들은 pip install PyMySQL)
  (중요) mysql 설치되어 있는지 먼저 확인하기!

4. Django Project 생성

$ django-admin startproject westarbucks
$ cd westarbucks

5. Settings.py 설정

  • IP 허용
ALLOWED_HOSTS = ['*']
  • 주석처리 (admin, csrf, auth)

추가로 프로젝트명/urls.py 를 아래와 같이 수정해야한다(중요!!)

from django.urls import path

urlpatterns = [
]
  • my_settings.py 생성 (DATABASES, SECRET_KEY)

    • 장고 설정에 존재하는 내용 중 SECRET_KEY, DATABASE 등은 소스로서 공유해야 하는 내용이 아니다. 별도의 파일 혹은 환경변수로서 관리하는게 좋다.
    • settings.py에 바로 저장되는 방식은 지양해야 한다.
    • 별도의 참조용 파이썬 파일(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',
	'OPTIONS': {'charset': 'utf8mb4'}
    }
}

SECRET_KEY = '시크릿키' #settings.py에 있는 secret_key 를 사용한다.
  • 위에 내용은 예시이다.

  • settings.pymy_settings.py 연동

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

...

DATABASES = DATABASES

SECRET_KEY = SECRET_KEY
  • my_settings.py 의 연동하기위한 코드수정모습

  • settings.py 의 연동하기위한 코드수정모습

  • corsheaders
pip install django-cors-headers
  • 설치했다면 settings.pyINSTALLD_APPS 안에 추가해줘야 한다.
INSTALLED_APPS = [
  ...
	'corsheaders'
]
  • middleware도 추가해야한다.
MIDDLEWARE = [
	...
  'corsheaders.middleware.CorsMiddleware',
	...
]
  • CORS 추가 설정
##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',
)
  • 마지막으로 허용할 값을 정의 한다.

  • 모든 내용은 settings.py안에 기록되야 한다.

6. 프로젝트 서버 실행

  • 서버 동작(Runserver)을 통한 오류 검증
python manage.py runserver
  • 정상 동작 예시


Git & Github

1. git 초기화

  • 생성한 장고 프로젝트를 git으로 관리할 수 있도록 초기화 한다.
    • manage.py 가 위치한 곳으로 이동
    • git init 명령어로 git 초기화
git init

2. .gitignore 생성

  • 소스를 공유하기 위해 깃을 사용하지만 올리고 싶은것 올리고 싶지 않은것, 올려서는 안되는 것들이 존재한다. 이를 구분하기 위해 깃이 설치된 디렉토리에 .gitignore파일을 생성해서 관리해야 한다.

  • 아래 사이트에서 사용하는 환경에 해당하는 키워드를 선택하면, 자동으로 .gitignore 파일에 정의할 요소들을 생성 해준다.

    .gitgnore

  • 아래 키워드를 추가 후 Create 를 해야한다.

    • python, pycharm, VisualStudioCode, vim, macOS, Linux, zsh
    • 각 단어 입력 후 Enter 를 쳐야 잘 입력된다.
  • Create 하여 나온 내용을 .gitignore 파일 생성 후, 붙여넣기

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

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

# 가장 하단 my_settings.py 추가하기
my_settings.py (보안 관련 파일은 github에 업로드되면 안된다.)
  • gitignore.io 결과 전체 복사를 한 모습

  • 가장 하단 my_settings.py 추가한 모습

3. 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 브랜치 이름
  1. Application 생성
    • settings.py 설정 후 app 생성
$ python manage.py startapp products
  1. Github Push
    • git add & commit
git add .
git commit -m "Add: products application"
  • Github repository branch push
git push origin "브랜치 이름"
profile
# 불편함을 편리함으로 바꾸고싶은 주니어 Back-end 개발자

0개의 댓글