Django 프로젝트 시작, mysql 연결

신지원·2021년 3월 28일
0
post-custom-banner

안적어두면 까먹을 것같아서 적어두는 프로젝트 시작하고, 장고랑 mysql 연결하는 법!

1. 가상환경설정하기

1) 가상환경 만들기

conda create -n 가상환경이름 python=3.7

2) 가상환경 activate

conda activate 가상환경이름
  • 가상환경 deactivate
conda deactivate
  • 가상환경 삭제하기
conda env remove -n 가상환경이름

2. 프로젝트 시작하기

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이름

3. 데이터 베이스 생성

mysql에서 진행!

create database 데이터베이스명 character set utf8mb4 collate utf8mb4_general_ci;

character 이하부분은 mysql에서 한글과 이모지 표현해주기 위한것!

4. settings.py 설정

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

5. 기타

1) Server에 HTTP request를 전송할 수 있는 client 중에 하나인 Httpie 설치

#Mac
brew install httpie

2) django shell 편하게 보기

#shell 더 편하게 보기
pip install ipython
post-custom-banner

0개의 댓글