Django 는 무엇일까?
파이썬으로 만들어진 무료 오픈소스 웹 애플리케이션 프레임워크(web application framework)
쉽고 빠르게 웹사이트를 개발할 수 있도록 돕는 구성요소로 이루어진 웹 프레임워크
보안이 우수하고 유지보수가 편리한 웹사이트를 신속하게 개발하는 하도록 도움을 주는 파이썬 웹 프레임워크
[Django의 각 위치 및 기능 그리고 전반적인 흐름]
Django 초기환경 세팅
# 가상환경 생성
conda create -n "가상환경 이름" python=3.8 ---> 가상환경 생성
conda activate "가상환경 이름" ---> 가상환경을 선택하여 접속
$ mysql -u root -p
mysql> create database NAME character set utf8mb4 collate utf8mb4_general_ci;
$ pip install django
# 이후에 MySQL server에 접속하기 위한 package
$ pip install mysqlclient
(M1을 사용하시는 분들은 pip install PyMySQL)
(중요) mysql 설치되어 있는지 먼저 확인하기!
$ django-admin startproject westarbucks
$ cd westarbucks
ALLOWED_HOSTS = ['*']
추가로 프로젝트명/urls.py 를 아래와 같이 수정해야한다(중요!!)
from django.urls import path
urlpatterns = [
]
my_settings.py
생성 (DATABASES, SECRET_KEY)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.py
↔ my_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
의 연동하기위한 코드수정모습
pip install django-cors-headers
settings.py
에 INSTALLD_APPS
안에 추가해줘야 한다.INSTALLED_APPS = [
...
'corsheaders'
]
MIDDLEWARE = [
...
'corsheaders.middleware.CorsMiddleware',
...
]
##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
안에 기록되야 한다.
python manage.py runserver
Git & Github
manage.py
가 위치한 곳으로 이동git init
명령어로 git 초기화git init
소스를 공유하기 위해 깃을 사용하지만 올리고 싶은것 올리고 싶지 않은것, 올려서는 안되는 것들이 존재한다. 이를 구분하기 위해 깃이 설치된 디렉토리에 .gitignore
파일을 생성해서 관리해야 한다.
아래 사이트에서 사용하는 환경에 해당하는 키워드를 선택하면, 자동으로 .gitignore
파일에 정의할 요소들을 생성 해준다.
아래 키워드를 추가 후 Create 를 해야한다.
Enter
를 쳐야 잘 입력된다.Create 하여 나온 내용을 .gitignore
파일 생성 후, 붙여넣기
cd '프로젝트 폴더명'
touch .gitignore
vi .gitignore
############################
# gitignore.io 결과 전체 복사 #
############################
# 가장 하단 my_settings.py 추가하기
my_settings.py (보안 관련 파일은 github에 업로드되면 안된다.)
gitignore.io 결과 전체 복사를 한 모습
가장 하단 my_settings.py 추가한 모습
git add .
git commit -m "Add: Django Project Setting"
Branch
Branch 생성
feature/crud
브랜치를 생성 & 이동git branch 브랜치 이름 # 브랜치 생성
git checkout 브랜치 이름 # 해당 브랜치로 이동
# 생성과 동시에 이동하는 방법
git checkout -b 브랜치 이름
settings.py
설정 후 app 생성$ python manage.py startapp products
git add .
git commit -m "Add: products application"
git push origin "브랜치 이름"