conda create -n "가상환경 이름" python=3.9
#3.9이상 버전 사용해야 asgi.py 파일 생성됨.
conda activate "가상환경 이름"
# 가상환경 실행
conda deactivate
# 가상환경 종료
conda env list
# 가상환경 목록
conda env remove -n "가상환경 이름"
# 가상환경 삭제
pip install django
pip install PyMySQL
pip freeze
# 설치 확인
mysql.server start
brew services start mysql
# 서버 켜놓기
mysql -u root -p
# mysql 서버에 명령어를 보내겠다고 하는 클라이언트 명령문
# -u : mysql에 어떤 유저로 접속할 것인지
# root : root 계정으로 접속하겠다는 것, 회사에서는 root사용이 아닌 권한에 맞는 유저 제공
# -p : password를 입력하겠다는 것
mysql> create database NAME character set utf8mb4 collate utf8mb4_general_ci;
# character set utf8mb4 : database에 특수문자까지 저장할 수 있게 도와주는 옵션, 이모티콘 등 저장가능
# collate : database에서 검색을 할 때 기준을 무엇으로 잡을 것인지
mysql> show databases;
# database 확인
mysql> use NAME
# 해당 database를 사용
mysql> drop database NAME;
# 등록된 database 삭제
# 프로젝트 폴더를 만들 경로로 이동
django-admin startproject "프로젝트 이름"
cd "프로젝트 이름"
django로 서버를 실행시키거나 명령을 실행하게 하는 설정파일
BASE_DIR = Path(__file__).resolve().parent.parent
# 장고 프로젝트에서 어디를 절대경로로 둘 것인지, 보통은 manage.py
# 현재 위치의 부모의 부모 디렉토리를 절대경로라고 보는 것(manage.py 디렉토리가 있는 경로)
DEBUG = True
# True: 개발할 때 났던 error들이 터미널 창에 출력됨
# False: 배포할 때 설정, True일 경우 error난 것들을 터미널에 출력하느라 속도가 느려짐
ALLOWED_HOSTS = ['*']
# 어떤 요청을 받을 것인지
# * 설정, 어떤 서버의 요청이라도 허락을 하겠다는 뜻
INSTALLED_APPS = [
#'django.contrib.admin',
#'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
]
# 장고가 제공해주는 adimin 기능 사용하지 않음
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',
]
# 장고 admin기능을 사용했을 때 인증하는 미들웨어 설정 사용 X
from django.urls import path
urlpatterns = [
]
#
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 를 사용합니다.
from pathlib import Path #기존에 settings.py 에 있는 코드
from my_settings import DATABASES, SECRET_KEY
...
DATABASES = DATABASES
SECRET_KEY = SECRET_KEY
from pathlib import Path #기존에 settings.py 에 있는 코드
from my_settings.py import DATABASES, SECRET_KEY
import pymysql
pymysql.install_as_MySQLdb()
pip install django-cors-headers
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',
)
python manage.py runserver