django 사용자 정의 템플릿 프로세서 만들기 실례 설명

2199 단어
django 사용자 정의 템플릿 프로세서 만들기
1. 수요원:
django 개발에서 페이지는template(템플릿)를 통해 렌더링되며 일부 데이터는 {{변수}}}}로 전달할 수 있습니다.그러나 만약에 전체 사이트, 또는 전체 사이트의 대부분 페이지에 변수나 데이터를 사용했다면 매번 렌더링할 때마다 이 몇 개의 데이터를 전달하는 것은 상당히 불필요해 보인다.이것은django의 DRY(Don't repeat yourself) 사상과 맞지 않기 때문에django는 프로세서를 사용자 정의할 수 있는 방식을 제공합니다.
2. django 기본 프로세서:
django 개발에서,django는 기본적으로 네 개의 프로세서를 불러옵니다. 이 프로세서들은django 패키지가 자체로 가지고 있습니다.너는 settings에서py의 TEMPLATES의OPTIONS의contextprocessors에서 기본으로 불러오는 모든 django를 찾습니다.여기에는 다음이 포함됩니다.

'django.template.context_processors.debug',        'django.template.context_processors.request',
'django.contrib.auth.context_processors.auth',        'django.contrib.messages.context_processors.messages',

3. 사용자 정의django 프로세서:
프로젝트의 메인 app 아래 (즉 프로젝트 이름의 app 아래) context 파일을 만드는 것을 권장합니다.processors.py는 사용자 정의 프로세서든django가 자체로 가지고 있는 프로세서든 모두 하나의 함수를 정의합니다. 이 함수는 리퀘스트의 매개 변수를 가지고 있으며, 템플릿의 매개 변수를 나타내는 사전을 되돌려줍니다.
예를 들어 다음과 같은 형식으로 개인 정보가 포함된 프로세서를 만듭니다.

def mycontact(request):
  return {
    'telephone': 'aaa',
    'qq': 'bbb',
    'email': '[email protected]'
  }

settings에서.py 프로필에서 TEMPLATES에 있는context 를 찾습니다프로세스 ors, 그리고 뒤에 사용자 정의 프로세서를 추가합니다. 예를 들어 프로젝트 이름은 mysite입니다. 그리고 contextprocessors.py는 mysite/mysite 아래, 즉settings.py 동급 디렉터리에 불러오는 루트는 mysite입니다.context_processors.mycontact, 그래서 지금의contextprocessors의 데이터는 다음과 같습니다.

'context_processors': [
  'mysite.context_processors.mycontact',
          'django.template.context_processors.debug',
          'django.template.context_processors.request',
          'django.contrib.auth.context_processors.auth',
          'django.contrib.messages.context_processors.messages',
    ]

앞으로 템플릿 파일에서 {{변수}}} 방식으로 변수를 도입할 수 있습니다.
주의사항: TEMPLATES에서 APP 를DIRS가 True로 설정되어야 django가 django의 앱 아래에 있는 프로세서를 불러옵니다.
궁금한 점이 있으면 댓글을 남기거나 본 사이트 지역사회에 가서 교류하고 토론하세요. 모두 함께 진보해 주셔서 감사합니다. 읽어주셔서 감사합니다. 여러분께 도움이 되었으면 좋겠습니다. 본 사이트에 대한 지지에 감사드립니다!

좋은 웹페이지 즐겨찾기