-
[Django] settings.py 파일 분리언어/파이썬 & 장고 2016. 5. 21. 11:55
base.py
""" Django settings for polalis project. Generated by 'django-admin startproject' using Django 1.8.6. For more information on this file, see https://docs.djangoproject.com/en/1.8/topics/settings/ For the full list of settings and their values, see https://docs.djangoproject.com/en/1.8/ref/settings/ """ # Build paths inside the project like this: os.path.join(BASE_DIR, ...) import os BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) # Quick-start development settings - unsuitable for production # See https://docs.djangoproject.com/en/1.8/howto/deployment/checklist/ # SECURITY WARNING: keep the secret key used in production secret! SECRET_KEY = 'p5^ykf!%2(8q3lxqfi_+&ivv*xy7!77bcjc9-9^uw#eopu6e7o' # SECURITY WARNING: don't run with debug turned on in production! DEBUG = True ALLOWED_HOSTS = [] PROJECT_APPS = ( 'account', 'bankbook', 'cashbook', 'cashreceipt', 'credit', 'ebill', 'etaxbill', 'finment', 'library', 'login', 'polalis', 'process', 'scrapping', 'situation', 'slipfix', 'statement', 'trade', 'trialbalance', ) # Application definition INSTALLED_APPS = ( 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.sites', 'django.contrib.messages', 'django.contrib.staticfiles', 'django_jenkins', 'rest_framework', 'rest_framework_swagger', 'django_crontab', 'account', 'bankbook', 'cashbook', 'cashreceipt', 'credit', 'ebill', 'etaxbill', 'finment', 'library', 'login', 'polalis', 'process', 'scrapping', 'situation', 'slipfix', 'statement', 'trade', 'trialbalance', ) JENKINS_TASKS = ( 'django_jenkins.tasks.run_pylint', ) PYLINT_LOAD_PLUGIN = ( 'pylint_django', ) ''' REST_FRAMEWORK = { # Use Django's standard `django.contrib.auth` permissions, # or allow read-only access for unauthenticated users. 'DEFAULT_PERMISSION_CLASSES': [ 'rest_framework.permissions.DjangoModelPermissionsOrAnonReadOnly' ] } ''' MIDDLEWARE_CLASSES = ( 'django.middleware.cache.UpdateCacheMiddleware', 'django.contrib.sessions.middleware.SessionMiddleware', 'django.middleware.common.CommonMiddleware', 'django.contrib.auth.middleware.AuthenticationMiddleware', 'django.contrib.auth.middleware.SessionAuthenticationMiddleware', 'django.contrib.messages.middleware.MessageMiddleware', 'django.middleware.clickjacking.XFrameOptionsMiddleware', 'django.middleware.security.SecurityMiddleware', ) ROOT_URLCONF = 'polalis.urls' TEMPLATES = [ { 'BACKEND': 'django.template.backends.django.DjangoTemplates', 'DIRS': [os.path.join(BASE_DIR, '../templates')], 'APP_DIRS': True, 'OPTIONS': { 'context_processors': [ 'django.template.context_processors.debug', 'django.template.context_processors.request', 'django.contrib.auth.context_processors.auth', 'django.contrib.messages.context_processors.messages', ], }, }, ] CRONJOBS = [ ('*/10 * * * *', 'scrapping.cron.scrapping_cron', '>> /tmp/scrapping_cron.log') ] WSGI_APPLICATION = 'polalis.wsgi.application' SWAGGER_SETTINGS = { 'exclude_namespaces': [], 'api_version': '0.1', 'api_path': '/', 'enabled_methods': [ 'get', 'post', 'put', 'patch', 'delete' ], 'is_authenticated': False, 'is_superuser': False, 'unauthenticated_user': 'django.contrib.auth.models.AnonymousUser', 'permission_denied_handler': None, 'info': { 'title': 'Polaris API', }, 'doc_expansion': 'none', } # Internationalization # https://docs.djangoproject.com/en/1.8/topics/i18n/ LANGUAGE_CODE = 'en-us' TIME_ZONE = 'Asia/Seoul' USE_I18N = True USE_L10N = True USE_TZ = True # Static files (CSS, JavaScript, Images) # https://docs.djangoproject.com/en/1.8/howto/static-files/ STATIC_URL = '/static/' STATICFILES_DIRS = ( os.path.join(BASE_DIR, '../static'), './static/', )
dev.py
from polalis.settings.base import * CRONTAB_DJANGO_SETTINGS_MODULE = 'polalis.settings.dev' DATABASES = { 'default': { 'ENGINE': 'django.db.backends.postgresql_psycopg2', 'NAME': 'polaris', 'USER': 'sunrise', 'PASSWORD': '1234', 'HOST': 'postgres', 'PORT': '5432' }, 'trialbalance': { 'ENGINE': 'django.db.backends.postgresql_psycopg2', 'NAME': 'polaris_0108', 'USER': 'sunrise', 'PASSWORD': '1234', 'HOST': 'postgres', 'PORT': '5432' }, 'cashbook': { 'ENGINE': 'django.db.backends.postgresql_psycopg2', 'NAME': 'cashbook', 'USER': 'sunrise', 'PASSWORD': '123', 'HOST': 'postgres', 'PORT': '5432' }, 'papyrus': { 'ENGINE': 'django.db.backends.postgresql_psycopg2', 'NAME': 'polaris_papyrus', 'USER': 'sunrise', 'PASSWORD': '1234', 'HOST': 'postgres', 'PORT': '5432' }, 'polaris_0108': { 'ENGINE': 'django.db.backends.postgresql_psycopg2', 'NAME': 'polaris_0108', 'USER': 'sunrise', 'PASSWORD': '1234', 'HOST': 'postgres', 'PORT': '5432' } }
base.py는 공통적으로 사용하는 부분을 작성하는 파일입니다.
local.py, dev.py 등 세팅환경을 분리하여 작성할 때 사용되며 from polalis.settings.base import * 와 같이 base.py를 참조합니다.
파일경로
SUNRISE(프로젝트) / SUNRISE (앱) / settings(폴더) / base.py, server.py, __init__.py (빨간색 부분은 생성해야함)
세팅
- 기존에 사용하던 settings.py 안의 코드를 local.py에 전부 복사/붙여넣기합니다.
- TEMPLATES =[ { ... 'DIRS': [os.path.join(BASE_DIR, '../../templates')] ... } ] 이와 같이 구성되어 있다면 DIRS를 다음과 같이 변경합니다.
- -> 'DIRS': [os.path.join(BASE_DIR, '../templates')]
STATICFILES_DIRS = ( os.path.join(BASE_DIR, "../static"), ... ) 이와 같이 구성되어 있다면 os.path.join의 경로를 다음과 같이 변경합니다.
-> os.path.join(BASE_DIR, "../static")
- local.py는 로컬에서 실행하기 위해 설정한 파일이고, dev.py는 서버에서 실행시키기 위해 만든 파일입니다. 현재 server에서 변경할 부분은 databases의 속성밖에 없으므로, databases의 속성만 변경합니다. (위 코드 참조)
- /SUNRISE 앱 내의 wsgi.py 폴더를 살펴보면 os.environ.setdefault("DJANGO_SETTINGS_MODULE", "SUNRISE.settings") 이렇게 실행 시, default로 참조할 settings 파일 경로 부분을 다음과 같이 변경합니다.
- -> os.environ.setdefault("DJANGO_SETTINGS_MODULE", "SUNRISE.settings.local") - 서버일 경우 local 대신 dev를 입력합니다.
실행법
파이참에서 실행할 경우
- 상단 메뉴 탭의 Run - Run - Edit Configrations... - Environment - Environment variables: 우측의 ... 버튼 클릭 - DJANGO_SETTINGS_MODULE의 Value값을 SUNRISE.settings.local로 변경
터미널에서 실행할 경우
- 터미널 창에서 python manage.py runserver (호출할 URL) -- settings파일이 존재하는 폴더=project.폴더.실행시킬 파일
- e.g,) python manage.py runserver ip주소:80 -- settings=SUNRISE.settings.server
- 터미널 창에서 python manage.py runserver (호출할 URL) -- settings파일이 존재하는 폴더=project.폴더.실행시킬 파일