conda activate
가상환경 만든 후 실행
pip install django
가상환경에 장고 설치
django-admin startproject
장고 프로젝트 만들기
. git ignore
소스를 공유하기 위해 깃을 사용하지만 올리고 싶은것 올리고 싶지 않은것, 올려서는 안되는 것들이 존재한다. 이를 구분하기 위해 깃이 설치된 디렉토리에 .gitignore파일을 생성해서 관리해야 함
linux, python, django, vim 등을 입력하여 ignore할 파일 만들기
manage.py 있는 곳에 vim .gitignore 을 이용하여 위의 내용 붙여넣는다
.gitignore
### Django ###
*.log
*.pot
*.pyc
__pycache__/
local_settings.py
db.sqlite3
db.sqlite3-journal
media
*.csv
my_settings.py
pip install django-cors-headers
보안관련 세팅
pip install django-cors-headers
django-cors-headers 설치 후 settings.py의 INSTALLD_APPS 안에 추가
# settings.py
INSTALLED_APPS = [
...
'django.contrib.staticfiles',
'corsheaders'
]
# settings.py
MIDDLEWARE = [
...
'corsheaders.middleware.CorsMiddleware',
...
]
settings.py 아래부분에 아래의 내용 추가
##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
사용하지 않는 내용들 주석처리하기
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',
]
my_settings.py 만들기 (manage.py 있는 곳에)
SECRET_KEY 설정
my_settings.py
SECRET_KEY = 'django settings.py에 있던 SECRET_KEY' 입력
DATABASES 설정
my_settings.py
DATABASES = {
'default' : {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'project 이름',
'USER': 'root',
'PASSWORD': 'mysql비밀번호',
'HOST': 'localhost',
'PORT': '3306',
}
}
위의 내용 입력해주고 settings.py에 원래 있던 DATABASES 내용 주석처리
SECRET_KEY = my_settings.SECRET_KEY
DATABASES = my_settings.DATABASES
pip freeze > requirements.txt
pip 설치된 파일을 requirements.txt로 만듦
mysql 연결
mysql -u root -p한 후 패스워드 입력하여 접속
create database '데이터베이스명' character set utf8mb4 collate utf8mb4_general_ci; -> 데이터베이스 생성
INSTALLED_APPS에서 'django.contrib.auth' 주석처리 하면 permission doesn't declare an explicit app_label and isn't in an application in INSTALLED_APPS 에러 뜨던데 어떻게 처리 하신거죠?