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의 앱 아래에 있는 프로세서를 불러옵니다.
궁금한 점이 있으면 댓글을 남기거나 본 사이트 지역사회에 가서 교류하고 토론하세요. 모두 함께 진보해 주셔서 감사합니다. 읽어주셔서 감사합니다. 여러분께 도움이 되었으면 좋겠습니다. 본 사이트에 대한 지지에 감사드립니다!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.