conda create -n 프로젝트명 python=3.7.4
conda activate 프로젝트명
pip install django
django-admin startproject 프로젝트명
pip install mysqlclient pyjwt bcrypt django-cors-headers
→ 해당 프로젝트를 공유하는 팀원들이 같은 환경에서 작업해야하기 때문에 아래와 같은 파일을 생성하여 한번에 설치할 수 있게 설치목록을 저장해놓음.
pip freeze > requirements.txt
# 설치할 때는
pip install -r requirements.txt
배포할 때 노출되서는 안 되는 내용들을 따로 적어놓음.
# my_settings.py
DATABASES = {
'default' : {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'we', # 데이터베이스명, 데이터베이스 생성되어 있어야함
'USER': 'root',
'PASSWORD': 'pass1423', # 데이터베이스 접근 가능한 비번
'HOST': 'localhost',
'PORT': '3306',
}
}
데이터베이스 생성
# mysql 프롬프트 내에서
create database 데이터베이스명 character set utf8mb4 collate utf8mb4_general_ci;
아래와 같은 파이썬 파일 생성 후 개인적으로 보관하고 프로젝트마다 새로 제작.
# secretkey.py
import string
import random
# Get ascii Characters numbers and punctuation (minus quote characters as they could terminate string).
chars = ''.join([string.ascii_letters, string.digits, string.punctuation]).replace('\'', '').replace('"', '').replace('\\', '')
SECRET_KEY = ''.join([random.SystemRandom().choice(chars) for i in range(50)])
print(SECRET_KEY)
python secretkey.py # 입력하면 해당 파일 실행되면서 secret_key print됨
# my_settings.py
SECRET = {
'secret' : '&CZ>]H,B~Sdld,~5:)[pJ%R!LCK+20tjie2D`dk2wv#e|XW@Q',
}
import my_settings
SECRET_KEY = my_settings.SECRET['secret']
ALLOWED_HOSTS = ['*']
# admin은 따로 사용하지 않기 때문에 admin과 관련된 내용들은 주석처리 (admin, auth)
INSTALLED_APPS = ['corsheaders'] # 추가
# 'django.middleware.csrf.CsrfViewMiddleware', django.contrib.auth.middleware.AuthenticationMiddleware' 주석처리
MIDDLEWARE = ['corsheaders.middleware.CorsMiddleware'] # 추가
DATABASES = my_settings.DATABASES
LANGUAGE_CODE = 'ko'
TIME_ZONE = 'Asia/Seoul'
##Disable_slash
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',
)
# 프로젝트폴더/urls.py
# 아래와 같이 변경 후 저장
from django.urls import path
urlpatterns = []