django 사용자 정의 템 플 릿 프로세서 생 성 실례 상세 설명

2444 단어 django프로세서
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 아래 에 있 는 프로 세 서 를 불 러 옵 니 다.
궁금 한 점 이 있 으 시 면 메 시 지 를 남기 거나 본 사이트 지역사회 에 가서 토론 을 하 세 요.모두 가 함께 발전 하고 읽 어 주 셔 서 감사합니다. 여러분 에 게 도움 이 되 기 를 바 랍 니 다.본 사이트 에 대한 지지 에 감 사 드 립 니 다!

좋은 웹페이지 즐겨찾기