Django. - settings.py 파일 역할

9894 단어 django
템플릿 Templates
django 프로필 -->settings.py에서 템플릿 파일 구성 - 매개변수 목록 - 다음과 같이 구성됩니다.
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',
            ],
        },
    },
]

Backend 필드, 'BACKEND' 를 백엔드로 번역합니다.백그라운드뒷부분컴파일러 백엔드;,
  • 여기는 백엔드 컴파일러 백엔드를 가리킬 것입니다. 이 필드 뒤에 대응하는 것은django의 내장 템플릿 렌더링 엔진 ---->DjangoTemplates이기 때문입니다.
  • 페이지를 렌더링하는 렌더기는 두 가지가 있는데 하나는 django에 내장된 Django Templates이고 다른 하나는 jinja2
  • 이다.
    TEMPLATES = [
        {
            'BACKEND': 'django.template.backends.django.DjangoTemplates',
            'DIRS': [
                '/home/html/example.com',
                '/home/html/default',
            ],
        },
        {
            'BACKEND': 'django.template.backends.jinja2.Jinja2',
            'DIRS': [
                '/home/html/jinja2',
            ],
        },
    ]
    

    DIRS 필드, directories 파일 디렉토리
  • 템플릿 파일의 경로를 가리키며 파라미터 값은 목록에 묻는다. 보통 [os.path.join(BASE DIR,'templates')], 프로젝트 디렉터리에 있는templates 폴더
  • APP_DIRS의 역할은 app 디렉터리에서 정적 템플릿을 찾을 지 여부입니다. 엔진이 설치된 프로그램에서 템플릿을 찾을 지 여부를 알려 줍니다.
  • 매개변수에는 True 및 False
  • 두 가지 옵션이 있습니다.
  • True로 설정하면 django는 모든 앱에서 해당하는temmplates 폴더 아래의 HTML 파일을 찾습니다. 현재 앱에서views를 작성하는 방법은 본 앱 내의 정적 파일을 우선적으로 사용합니다(DIRS로 설정된templates 파일도 있습니다. 이것은 현학적이고 버그가 많습니다. 이 옵션을False로 설정하는 것을 추천합니다) 템플릿이 없으면 다른 앱이나 앱과 동급의templates 폴더에서 찾습니다.
  • Fales로 설정하면django는 프로젝트 루트 디렉터리(상대적으로) 아래의templates 폴더에서 대응하는 템플릿 파일을 찾습니다. 바로DIRS가 지정한 파일 디렉터리에서 찾습니다. 이 방법을 사용하면 정적 파일을 쉽게 관리할 수 있기 때문입니다
  • 기본값은 True이며 False를 사용하여 정적 파일 경로를 통일하고 나중에 찾기 쉽도록 추천합니다
  • OPTIONS django 공식 문서
  • context_processors 상하문 프로세서, 텍스트 프로세서 django-content프로세스 공식 문서 사용자 정의 상하문 프로세서 이 선배님의 사례를 참조하십시오
  • 코드는 다음과 같다:
  •  			'context_processors': [
                    'django.template.context_processors.debug',
                    'django.template.context_processors.request',
                    'django.contrib.auth.context_processors.auth',
                    'django.contrib.messages.context_processors.messages',
                ],
    

    상기 네 가지 옵션, debug,request,auth,message는 템플릿 문법에 사용할 수 있는 변수를 가리킨다. 이외에django는 많은 상하문 프로세서를 제공했다. 예를 들어 다음과 같은 코드:
    'context_processors': [
                    'django.template.context_processors.debug',
                    'django.template.context_processors.request',
                    'django.contrib.auth.context_processors.auth',
                    'django.contrib.messages.context_processors.messages',
                    "django.template.context_processors.i18n",
                    'django.template.context_processors.media',
                    'django.template.loaders.filesystem.Loader',
                    'django.template.loaders.app_directories.Loader',
                ]
    
    

    상기 코드가 가지고 있는 상하문 프로세서는 모두 바꿀 수 있다는 것은 사용할 수도 있고 사용하지 않을 수도 있다는 것을 의미한다. 그러나 또 하나는 개발자가 선택하지 않는 것이다. 그것이 바로 csrf이다. 이 상하문 프로세서는 개발자가 선택할 수 없고 사용할 수 있는지,
    상하문 프로세서가 호출될 때 되돌아오는 사전은 키 값이 맞는 방식으로 대응하는 변수를 되돌려줍니다
  • debug: 두 가지 변수가 있는데,
  • debug 부울 값, True or False, 디버그 모드가 켜져 있으면 (디버그 모드가 허용하는 IP는 방위가 가능) 이 인자를 얻을 수 있습니다
  • sql_queries, 한 그룹의 sql 조회 디버깅 정보 {'sql':...,'time':.....}, 조회를 되돌려주는 시간 + 구체적으로 다음과 같이 사용:
  • DEBUG = True
    INTERNAL_IPS=(
                  '192.168.3.189',
                  '127.0.0.1',
    )
    
    #    django    :
    {% for query in sql_queries %}
    	time:{{ query.time }},
    	sql: {{query.sql}}
    
    
    
  • auth: 두 개의 변수가 있다
  • user는 현재 로그인한 사용자를 나타낸다. 로그인한 사용자가 없을 때 AnonymousUser 사용자의 실례를 되돌려준다.
  • perms, 현재 사용자의 권한을 나타냅니다.django입니다.contrib.auth.context_processors.PermWrapper의 인스턴스 객체

  • i18n: 세 변수를 되돌려줍니다
  • i18n(영문 단어인internationalization의 첫머리 문자 i와 n, 18은 중간의 문자수)은'국제화'의 약칭이다.
  • LANGUAGES - 일련의 모듈로 구성된 목록으로 각 모듈의 첫 번째 요소는 언어 코드이고 두 번째 요소는 이 언어로 표시된 언어 이름이다.
  • LANGUAGE_BIDI 현재 지역에 대한 설명입니다.트루(True)라면 오른쪽에서 왼쪽으로 쓴 언어입니다. 예를 들어 히브리어, 아랍어입니다.가짜(False)라면 영어, 프랑스어, 독일어 등 왼쪽에서 오른쪽으로 쓴 언어다
  • LANGUAGE_CODE는 현재 사용자의 기본 언어입니다.예: en-us.
  • 이 섹션의 설명은 W3Cschool
  • 좋은 웹페이지 즐겨찾기