django-admin startproject test-django
하면 에러가 발생한다.
CommandError: 'clone-instagram-back' is not a valid project name. Please make sure the name is a valid identifier.
이러한 에러가 발생하는데 -(하이픈) 을 사용해서 나타나는 에러이다 .
django-admin startproject test_django
라고 하면 에러가 사라진다.
소스를 공유하기 위해 깃을 사용하지만 ,
올리고 싶은 것 올리고 싶지 않은 것 , 올려서는 안되는 것들이 존재한다.
이를 구분하기 위해 깃이 설치된 디렉토리에 .gitignore
파일을 생성해서 관리 해야한다.
위의 사이트에서 사용하는 환경에 해당하는 키워드를 선택하면 ,
자동으로 .gitignore
파일에 정의할 요소들을 생성 해줍니다.
생성된 결과물을 복사한뒤 아래의 과정을 거쳐 내용을 저장한다.
cd '프로젝트 폴더명'
touch .gitignore
vi .gitignore
이제 주석처리를 해야한다.
settings 에서 사용하지 않는 요소들을 주석처리를 해야하고 ,
필요한것은 추가를 해야한다 .
admin , csrf , auth 등등 을 우선 주석처리 하자 .
INSTALLED_APPS = [
# 'django.contrib.admin',
# 'django.contrib.auth',
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',
]
pip install django-cors-headers
corsheaders 는 무엇일까요 ??
광거의 서버 (2세대) 의 인증은 csrf 를 대비했습니다.
그이유는 페이지를 공개했기 때문이다.
먼저 해야할 일은 cors 에 대한 처리를 원활하게 도와줄 플러그인인 django-cors-headers 를 설치한다.
pip install django-cors-headers
installed_apps = [
'django.contrib.staticfiles',
'corsheaders'
]
middleware 도 추가해야한다.
MIDDLEWARE = [
...
'corsheaders.middleware.CorsMiddleware',
...
]
마지막으로 허용할 값을 정의 한다.
https://pypi.org/project/django-cors-headers/
##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 등은 소스로서 공유해야 하는 내용이 아니다.
별도의 파일 혹은 환경변수로서 관리하는게 좋다.
이 말인 즉 , settings.py 에 그냥 기록되는건 지양해야 한다는거다.
django-admin startproject '하고싶은 프로젝트 명'
cd '생성한 프로젝트 폴더명'
touch my_settings.py
이 my_settings 파일에 실제로 정말 쓰여지는 내용 .
DATABASES = {
'default' : {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'DATABASE 명',
'USER': 'DB접속 계정명',
'PASSWORD': 'DB접속용 비밀번호',
'HOST': '실제 DB 주소',
'PORT': '포트번호',
}
}
SECRET = {
'secret':'시크릿키',
}
이렇게 my_settings.py 파일을 설정하고 ,
settings 파일로 가서
database 를 설정하게 되면 ,
import my_settings
DATABASE = my_settings.DATABASES
추가적으로 외부 API(SNS 로그인 , AWS 접속용 정보 등 ) 도 기록 할 수 있다.
중요한 정보는 직접 소스로 공유하지 않고 위와 같이 별도의 파일을 통해 관리한다.
이 파일은 깃 저장소에 공유하지 않으므로 ,
.gitignore 파일에도 등록해야한다.
git 등록하는것은 나중에 다시 정리하겠다.