Django的protocolify是一個模板標籤的Django,允許被改變的模板代碼塊中的鏈接使用的協議/方案。
一個用例是當你的網站的一部分使用HTTPS(如支付頁面),並希望用戶返回使用HTTP,如果他們離開頁面。通常情況下,你將使用{%URL%}模板標籤生成URL,然而這會導致類似的網址:
/產品/
而不是:
http://example.com/products/
這意味著,一旦用戶進入一個HTTPS網頁,他們將使用HTTPS,除非它們手動修改其瀏覽器的地址欄中的URL卡住。
這是Django的protocolify眼前一亮。
用法
{%protocolify [老]為<新>%}
例如(假設請求是http://example.com/blah/):
{%負載protocolify%}
{%protocolify為“https”%}
的
的
的
的
的
的
的
的
的
的
{%endprotocolify%}
呈現於:
的
的
的
的
的
的
的
的
的
的
(:舊默認為[一 - 雜 - Z] +注)這是通過使用一對簡單的正則表達式和urlparse.urljoin()的當前實現:
例如# HREF =“http://google.com”
應用re.sub(R'(SRC | HREF)=“%S://'老%,R' 1 =”%S://'%新,...)
例如# HREF =“../產品”
通過re.findall(R“”“(SRC |的href)=(”|“)(即[az] [一個-Z0-9 + - ] *:?!?)(*) 2”“”)
當一個相對路徑替換(如../products)它加入到Request的。對於這項工作,模板上下文必須包含一個請求變量的HttpRequest的。這可以通過使用一個的RequestContext和加入“django.core.context_processors.request”到TEMPLATE_CONTEXT_PROCESSORS設置來實現。
當一個相對路徑(例如/產品/)是protocolified(因為域必須指定)域ambiguitity介紹。域猜測是在按下列順序執行:
1. request.META [“HTTP_HOST”] - 當上下文包含請求
2. Site.objects.get_current()。域
安裝
1.下載並安裝:安裝PIP Django的,protocolify
2.添加“protocolify”在你的項目中的INSTALLED_APPS設置
要求:
- 在Python的
- Django的
評論沒有發現