(base) $ conda create -n project python=3.8
(project) $ conda activate project
(project) $ pip install django
💡 requirements.txt
프로젝트에 필요한 라이브러리를 모아둔 텍스트 파일#requirements.txt 작성 pip freeze > requirements.txt #requirements.txt에 있는 라이브러리 설치 pip install -r requirements.txt
(project) $ django-admin startproject project
소스를 공유하기 위해 깃을 사용하지만 올리고 싶은 것 올리고 싶지 않은 것, 올려서는 안되는 것들이 존재한다. 이를 구분하기 위해 깃이 설치된 디렉토리에 .gitignore 파일을 생성해서 관리해야 한다.
(project) $ vi .gitignore
gitignore 사이트에서 "django, python, macOS" 키워드에 해당하는 결과물을 복사해 .gitignore 파일에 저장해준다.
사용하지 않는 요소들 주석 처리
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',
]
언어와 시간대 변경
LANGUAGE_CODE = 'ko'
TIME_ZONE = 'Asia/Seoul'
django-cors-headers
(project) $ pip install django-cors-headers
설치 후 project/settings.py에 installed_apps와 middleware에 추가
INSTALLED_APPS = [
#'django.contrib.admin',
#'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'corsheaders', #추가
]
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',
'corsheaders.middleware.CorsMiddleware', #추가
]
project/settings.py 끝부분에 아래 내용을 추가
#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',
#만약 허용해야할 추가적인 헤더키가 있다면(사용자정의 키) 여기에 추가
)
settings.py에 존재하는 내용 중 SECRET_KEY, DATABASE 등은 소스로서 공유해야 하는 파일이 아니므로, 별도의 파일 혹은 환경변수로서 관리하는 게 좋다.
(project) $ vi my_settings.py
DATABASES = {
'default' : {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'project', #데이터베이스명, 프로젝트명(django-admin)
'USER': 'root', #DB접속 계정명
'PASSWORD': '', #DB접속용 비밀번호
'HOST': 'localhost', #실제 DB 주소
'PORT': '3306', #포트번호, mysql의 기본포트는 3306
}
}
SECRET = {
'secret':'',
}
ALGORITHM = 'HS256'
settings.py 부분도 위 사항에 맞게 수정해준다.
import my_settings
SECRET_KEY = my_settings.SECRET['secret']
ALGORITHM = my_settings.ALGORITHM
#ip 주소 확인 명령어
#ifconfig en0 | grep inet | grep -v inet6 | cut -d ' ' -f2
ALLOWED_HOSTS = ["*", "자신ip주소", "자신ip소:8000"]
DATABASES = my_settings.DATABASES
마지막으로 .gitignore에 추가해준다.
(project) $ pip install mysqlclient
admin을 주석처리 했으므로 project/urls.py 에서 해당 내용을 삭제해준다.
mysql -u root -p
#create database DB명
mysql> CREATE DATABASE DB명 CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
같은 네트워크를 공유하고 있는 다른 컴퓨터에서 접속하고 싶을 때 서버 실행하는 법
./manage.py runserver 0:8000
🌏 다른 컴퓨터에서 http://ip주소:8000
로 접속하면 된다.