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 자체 프로세서 든 함 수 를 정의 합 니 다.이 함 수 는 request 인 자 를 가지 고 있 습 니 다.템 플 릿 의 인 자 를 표시 하기 위해 사전 을 되 돌려 줍 니 다.
예 를 들 어 우 리 는 개인 정 보 를 가 진 프로 세 서 를 만 들 려 고 합 니 다.형식 은 다음 과 같 습 니 다.
def mycontact(request):
return {
'telephone': 'aaa',
'qq': 'bbb',
'email': '[email protected]'
}
settings.py 프로필 에서 TEMPLATES 에 있 는 context 를 찾 습 니 다.processors,그리고 뒤에 사용자 정의 프로 세 서 를 추가 합 니 다.예 를 들 어 우리 의 프로젝트 이름 은 my site 입 니 다.그리고 저 는 contextprocessors.py 는 my site/my site 아래,즉 settings.py 와 같은 등급 의 디 렉 터 리 에 놓 여 있 기 때문에 불 러 오 는 길 은 my site.context 입 니 다.processors.my contact,따라서 현재 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 에서 앱 을 사용 해 야 합 니 다.DIRS 를 True 로 설정 해 야 django 가 django 의 app 아래 에 있 는 프로 세 서 를 불 러 옵 니 다.
궁금 한 점 이 있 으 시 면 메 시 지 를 남기 거나 본 사이트 지역사회 에 가서 토론 을 하 세 요.모두 가 함께 발전 하고 읽 어 주 셔 서 감사합니다. 여러분 에 게 도움 이 되 기 를 바 랍 니 다.본 사이트 에 대한 지지 에 감 사 드 립 니 다!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Django의 질문 및 답변 웹사이트환영 친구, 이것은 우리의 새로운 블로그입니다. 이 블로그에서는 , 과 같은 Question-n-Answer 웹사이트를 만들고 있습니다. 이 웹사이트는 회원가입 및 로그인이 가능합니다. 로그인 후 사용자는 사용자의 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.