장고 protocolify 템플릿 코드 블록 내의 링크에 사용되는 프로토콜 / 방식이 변경되도록 장고 용 템플릿 태그이다.
웹 사이트의 섹션이 HTTPS (예 : 결제 페이지)를 사용하고 사용자가 페이지를 떠날 경우 HTTP를 사용하여 반환 할 때이에 대한 사용 사례입니다. 일반적으로 당신은 그러나이 같은 URL을 발생합니다, URL을 생성하기 위해 {%의 URL %} 템플릿 태그를 사용할 것입니다 :
/ 제품 /
보다는 :
http://example.com/products/
이것은 사용자가 HTTPS 페이지에 들어가면, 그들은 그들이 수동으로 브라우저의 주소 표시 줄에 URL을 수정하지 않으면 HTTPS를 사용하여 부착되는 것을 의미합니다.
장고 - protocolify가 빛나는 곳이다.
용법
{%의 protocolify [이전]에 <새> %}
예 (가정 요청 http://example.com/blah/했다)
{% 부하 protocolify의 %}
{% protocolify에 "HTTPS"%}
{% endprotocolify %}
하는 렌더링 :
(: [A-Za-z]와 + 구 기본값 주)는 현재 단순한 정규 표현식과 urlparse.urljoin ()의 몇 가지를 사용하여 구현됩니다 :
# 예를 들어, HREF = "http://google.com"
의 re.sub (R '(SRC | HREF) = "% S : //'% 이전, R ' 1 ="% S : //'% 새로운, ...)
# 예를 들어, HREF = "../ 제품"
re.findall (R "" "(SRC | HREF) = ( '|') ([AZ] [A-Z0-9 + -.] *?!.?) (*) 2" "")
상대 경로 (예 : ../products)를 교체하면 그것은 request.path에 가입합니다. 이 작업을하려면, 템플릿 컨텍스트는 요청 변수에 HttpRequest에 포함되어 있어야합니다. 이것은 RequestContext를 사용 TEMPLATE_CONTEXT_PROCESSORS 설정을 "django.core.context_processors.request"을 추가함으로써 달성 될 수있다.
(도메인을 지정해야하기 때문에) 상대 경로 (예를 들어 / 제품 /) protocolified 때 도메인 ambiguitity 소개한다. 도메인 추측은 다음 순서로 수행된다 :
1. request.META [ "HTTP_HOST은"] - 컨텍스트는 요청을 포함하는 경우
2. Site.objects.get_current (). 도메인
설치
1. 다운로드 및 설치 : 설치 PIP 장고를-protocolify
2. 추가 프로젝트의 INSTALLED_APPS 설정을 "protocolify"
요구 사항 :.
파이썬
장고
댓글을 찾을 수 없습니다