django

7. 기본 파일 설명 및 setting.py 파일 설명

으누아빠 2020. 7. 13. 18:41
반응형

파일설명

manage.py

manage.py: Django 프로젝트와 다양한 방법으로 상호작용 하는 커맨드라인의 유틸리티

config/디렉토리내 파일

  • mysite/init.py: Python으로 하여금 이 디렉토리를 패키지처럼 다루라고 알려주는 용도의 단순한 빈 파일
  • settings.py: 현재 Django 프로젝트의 환경 및 구성을 저장
  • urls.py: 현재 Django project 의 URL 선언을 저장
  • asgi.py: ASGI 호환 웹 서버가 프로젝트를 제공하기위한 진입점
  • wsgi.py: 현재 프로젝트를 서비스하기 위한 WSGI 호환 웹 서버의 진입점

settings.py 파일 설명

BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(file)))

  • 프로젝트의 root path를 저장
  • os.path.dirname : 디렉토리명만 얻기
  • os.path.abspath(file) : 현재 프로그램의 의 절대 경로 얻기

SECRET_KEY="***"

  • Djago 설치를 위한 특별한키
  • 설정되어 있지 않다면 장고는 시작되지 않으며 만약 노출된 키를 이용하면 취약점이 발생됨

DEBUG = True

  • 오류발생시 디버깅을 표시
  • 배포판에서는 False로 변경시켜줘야함

ALLOWED_HOSTS = []

  • 실제 서비스를 제공할 도메인 주소를 기입
  • DEBUG 플래그가 False일 때 Django는 ALLOWED_HOSTS 리스트에 자신이 실제로 서비스를 런칭할 웹 사이트의 도메인이 없으면 DisallowedHost 예외를 발생시키며 작동하지 않음
  • CSRF 공격으로부터 웹 사이트를 보호하기 위해 필요한 조치

INSTALLED_APPS = []

  • Django 의 기본 어플리케이션
  • django.contrib.admin //관리용
  • django.contrib.auth //인증
  • django.contrib.contenttypes //컨텐츠 타입
  • django.contrib.sessions // 세션
  • django.contrib.messages // 메세징
  • django.contrib.staticfiles //정적 파일을 관리

MIDDLEWARE = []

  • Django의 요청/응답처리 중간에서 작동하는 시스템

  • 장고는 http 요청이 들어오면 미들웨어를 거쳐서 해당 URL 에 등록되어 있는 뷰로 연결해주고, http 응답 역시 미들웨어를 거쳐서 내보냄

    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',
    ]
  • 장고는 http request 가 들어오면 위에서부터 아래로 미들웨어를 적용시킨다.

  • 장고는 http response 가 나갈 때 아래서부터 위로 미들웨어를 적용시킨다.

ROOT_URLCONF = "config.urls"

  • ROOT_URLCONF의 설정에 의하여 사용자가 웹사이트의 페이지를 요청할 때, 예로 "/polls/34/"를 요청했다고 하면, Django는 config.urls 파이썬 모듈을 불러오게 됨

TEMPLATES = []

  • Django 템플릿 설정
  • DIRS: [] Django가 템플릿들을 찾는 디렉토리 경로를 지정
  • APP_DIRS: True True 일 경우 Django는 각 어플리케이션 패키지 내에서 templates/ 서브 디렉토리를 자동으로 찾음

DATABASES = {}

  • 데이터베이스의 설정

AUTH_PASSWORD_VALIDATORS = []

AUTH_PASSWORD_VALIDATORS = [
    {
        "NAME": "django.contrib.auth.password_validation.UserAttributeSimilarityValidator",
    },
    {"NAME": "django.contrib.auth.password_validation.MinimumLengthValidator",},
    {"NAME": "django.contrib.auth.password_validation.CommonPasswordValidator",},
    {"NAME": "django.contrib.auth.password_validation.NumericPasswordValidator",},
]
  • 사용자 비밀번호의 유효성 검증
  • UserAttributeSimilarityValidator 비밀번호가 사용자 정보와 비슷한지 확인
  • MinimumLengthValidator 비밀번호가 최소 길이를 충족하는지 확인 기본길이는 최소길이가 9
  • CommonPasswordValidator 일반적으로 사용되는 비밀번호 인지 확인확인
  • NumericPasswordValidator비밀번호가 완전히 숫자가 아닌지 확인합니다.

Internationalization and localization 국제화 및 현지화

  • LANGUAGE_CODE = "ko-kr" //프로젝트 국가
  • TIME_ZONE = "Asia/Seoul" // 데이터베이스의 시간
  • USE_I18N = True // 번역 시스템 활성화 여부
  • USE_L10N = True // 현지화된 데이터 형식 사용여부
  • USE_TZ = True //시간대 인식여부

STATIC_URL = "/static/"

  • CSS, JavaScript, Media와 같은 정적 파일 경로

'django' 카테고리의 다른 글

9. Django Application 제작시 고민해야 되는 부분  (0) 2020.07.15
8. Django admin  (0) 2020.07.13
6. 국내 서비스를 위한 config/settings.py 수정  (2) 2020.07.09
5. creating a Django Project  (0) 2020.07.09
4. Github 저장소 생성  (0) 2020.07.07