안적어두면 까먹을 것같아서 적어두는 프로젝트 시작하고, 장고랑 mysql 연결하는 법!
1) 가상환경 만들기
conda create -n 가상환경이름 python=3.7
2) 가상환경 activate
conda activate 가상환경이름
conda deactivate
conda env remove -n 가상환경이름
1) 가상환경 안에 장고, mysqlclient 설치하기 (꼭 가상환경안에!!) <설치>
# 장고 설치
pip install django
# cor에 대한 처리를 원활하게 도와줄 플러그인
pip install django-cors-headers
#mysql server에 접속하기 위한 패키지 설치
pip install mysqlclient
2) 프로젝트, app 생성 (시작하고 싶은 파일안에서)
# 프로젝트 시작
django-admin startproject 프로젝트명
# app 시작
python manage.py startapp app이름
mysql에서 진행!
create database 데이터베이스명 character set utf8mb4 collate utf8mb4_general_ci;
character 이하부분은 mysql에서 한글과 이모지 표현해주기 위한것!
1) my_settings.py 파일 새로 만들기
-> 사용하는이유: mysql 비밀번호같은 중요한 정보가 git같은곳에 올렸을때 노출되지 않게 하기 위함 (해킹의 위험이 있기 때문에)
⭐️ 최상위 딕렉토리에 위치시키기
DATABASES = {
'default' : {
'ENGINE': 'django.db.backends.mysql',
'NAME': '데이터베이스명',
'USER': 'root',
'PASSWORD': '내빌번호',
'HOST': 'localhost',
'PORT': '3306',
}
}
SECRET = {
'secret':'=6xvu3t)6+8k8vi@b-(g4=2ah$@vi*^f@h#fraf)mc-_3@xw8t',
} # 다른걸로 바꿔도 됨
2) settings.py 설정바꿔주기
2-1) import mysettings.py
settings.py에 my_settings import 해주기
2-2) ip허용
ALLOWED_HOSTS = ['*']
장고 서버로 들어올 수 있는 ip 설정
*는 모두다 허용한다는 말
2-3) secret key 설정
SECRET_KEY = my_settings.SECRET['secret']
로그인 할때, 로그인 권한을 주는 토큰임. 따라서 예민한 정보!!
=> 그래서 my_settings 에 따로 넣어주는 것임.
my_settings.SECRET['secret']
bold체 부분은 my_settings.py에 있는 secret변수랑 이름 똑같이 설정해주면 됨!
지금 위에서는 my_settings.py에 secert key를 딕셔너리로 만들었으니깐 key 값도 []안에 넣어줘야 함.
만약에 그냥 스트링으로 선언하면 그냥 변수명만 정해줬을땐 변수명만 입력하면 됨.
💡 단, 나중에 유지보수를 생각하면 딕셔너리로 만들어주는게 더 좋음.
2-4) 사용하지 않을 것들 주석 처리
2-5) 사용하지 않는 url 삭제
from django.urls import path
urlpatterns = [
]
2-6) INSTALLED_Apps 추가
INSTALLED_APPS =[
'앱이름',
'corsheaders'
]
app 선언해주면 installed_apps에 이름 넣어줘야 됨.
2-7) Middleware 추가
MIDDLEWARE = [
'corsheaders.middleware.CorsMiddleware',
]
2-8) DATABASES 변경
DATABASES = my_settings.DATABASES
2-9) 마지막 줄에 추가 (cors headers)
#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',
#만약 허용해야할 추가적인 헤더키가 있다면?(사용자정의 키) 여기에 추가하면 됩니다.
)
1) Server에 HTTP request를 전송할 수 있는 client 중에 하나인 Httpie 설치
#Mac
brew install httpie
2) django shell 편하게 보기
#shell 더 편하게 보기
pip install ipython