스타벅스 모델링 후, 그에 대한 장고 프로젝트를 생성해서
간단하게 CRUD 작업을 할 예정이다.
그래서 그에 따른 작업환경을 세팅해줘야 한다.
1. conda create -n v_westar
가상환경을 설정해주기 위한 명령어로써, v_westar라는 가상환경 생성
중간에 계속 진행할거냐는 질문인 Proceed ([y]/n)? 질문에 y라고 입력한다
2. conda deactivate
지금 현재 base라는 가상환경에 있는데, 해당 가상환경에서 나가기 위한 명령어
가상환경을 바꾸기 전 deactivate 꼭 하자
3. conda activate v_westar
내가 방금 만든 가상환경 v_westar를 활성화 시키겠다는 명령어
pip install django
pip install mysqlclient
mysqlclient는 파이썬에서 mysql 서버와 통신 할 수 있게 해주는 커넥터 개념임
스타벅스 모델링을 통해 CRUD 작업을 할 데이터베이스를 생성해줘야 한다.
1. mysql -u root -p
mysql에 접속을 위한 명령어
2. create database v_westar character set utf8mb4 collate utf8mb4_general_ci;
데이터베이스 생성을 위한 명령어
3. use v_westar
show databases를 통해 데이터베이스가 만들어진 걸 확인하고,
user 데이터베이스명을 통해 이 데이터베이스를 사용할거라고 선언한다
장고 프로젝트를 만들기 위한 디렉토리로 이동하여 아래 명령어 입력
django-admin startproject v_westar
v_westar라고 만들면 내부에 같은 이름의 폴더가 생겨서 관리가 되는데,
가끔 그렬 경우 충돌이났었다.
그래서 최상위 v_westar -> v_westars로 이름만 바꿔주었다
mv v_westar v_westars
: v_westar의 디렉토리명을 v_westars로 변경
code .
: 해당 디렉토리를 vscode로 열 수 있는 명령어이다.
최초 설치된 폴더의 settings.py에 가면 해당 프로젝트에 대한
기본 세팅 값들을 볼 수 있다.
그런데 데이터베이스와 SECRET KEY는 변수로 가지고 있는 게 아닌,
관리 파일을 따로 만들어서 관리하는 것이 보안에 좋으며
나는 my_settings.py라는 파일을 만들어 해당 값들을 저장할거다.
그 전에, VSCODE를 켰으니 이제 터미널은 닫고 VSCODE 터미널에서 입력하자
가상환경도 내가 만든 v_westar로 바꿔주고 my_settings.py를 만들었다
settings.py에 들어가면 있는 SECRET_KEY는 복사해서 붙여넣어주자
그래서 my_settings.py 의 내용을 입력해보면
MY_SECRET_KEY = 'django-insecure-35%+21*o4hfajw6)v9q*puz%*j4o+p3q9jughkae)wmn*3p(fi'
MY_DATABASE = {
'default' : {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'v_westar', #데이터베이스명
'USER': 'root', #DB접속 계정명
'PASSWORD': 'k3dasd1', #mysql 로그인 할 때 쓰는 DB접속용 비밀번호
'HOST': '127.0.0.1',
'PORT': '3306',
}
}
이 되고 settings.py에 해당 파일을 import 하여
DATABASE와 SECRET_KEY에 넣어주고, 그 외 세팅들도 아래처럼 해보자
from my_settings import *
....
SECRET_KEY = MY_SECRET_KEY
...
ALLOWED_HOSTS = ['*']
...
INSTALLED_APPS = [
# 'django.contrib.admin',
# 'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
]
...
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',
]
...
그리고 urls.py도 아래와 같이 수정하자
from django.urls import path
urlpatterns = [
]
그리고 M1을 쓰는 사람의 경우, PyMySQL을 설치해야 한다.
pip install PyMySQL
또한 corsheaders 를 설치하여 서로 다른 서버에서도 원활히 접속할 수 있게 해주자
pip install django-cors-headers
설치한 걸 settings.py에 적용시켜야 세팅 끝!
import pymysql
...
pymysql.install_as_MySQLdb()
...
INSTALLED_APPS = [
'corsheaders', #개인적으로 맨위에 쓰는 걸 추천
...
]
...
MIDDLEWARE = [
#이거도 맨 위에 쓰는 거 추천
'corsheaders.middleware.CorsMiddleware',
...
]
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-crsftoken',
'x-requested-with',
)
모든 세팅이 완료된 후 실행했을 때 이렇게 뜨면 성공