جانغو-protocolify هو علامة قالب لجانغو التي تسمح لل/ بروتوكول مخطط المستخدمة في الروابط داخل كتلة من التعليمات البرمجية قالب إلى تغيير.
A-حالة استخدام لذلك هو عند قسم من موقع الويب الخاص بك يستخدم HTTPS (على سبيل المثال صفحة الدفع) وتريد المستخدم للعودة إلى استخدام HTTP إذا كانت مغادرة الصفحة. وعادة ما سوف يكون باستخدام {٪ رابط٪} قالب كلمة دلالية لتوليد عناوين المواقع، ولكن هذا سوف يؤدي إلى عناوين مثل:
/ منتجات /
بدلا من:
http://example.com/products/
وهذا يعني أنه بمجرد أن يدخل المستخدم إلى صفحة HTTPS، وسوف يكون عالقا باستخدام HTTPS ما لم تعديل URL في شريط عنوان المتصفح الخاص بهم يدويا.
هذا هو المكان الذي يضيء جانغو-protocolify.
استعمال
{٪ protocolify [القديم] إلى <الجديد>٪}
مثال (كان الطلب على افتراض أن http://example.com/blah/):
{٪ حمولة protocolify٪}
{٪ protocolify إلى "HTTPS"٪}
<أ href = ل"/ ABCD /">
<أ href = ل"ABCD /">
<أ href = ل"./ ABCD /">
<أ href = ل"../ ABCD /">
<أ href = ل"http://example.com/abcd/">
<أ href = ل"http://example.com">
<أ href = ل"ftp://example.com/abcd/">
<أ href = ل"ftp://example.com">
<أ href = ل"ftp://example.com/">
<أ href = ل"">
{٪ endprotocolify٪}
يجعل ل:
<أ href = ل"https://example.com/abcd/">
<أ href = ل"https://example.com/blah/abcd/">
<أ href = ل"https://example.com/blah/abcd/">
<أ href = ل"https://example.com/abcd/">
<أ href = ل"https://example.com/abcd/">
<أ href = ل"https://example.com">
<أ href = ل"https://example.com/abcd/">
<أ href = ل"https://example.com">
<أ href = ل"https://example.com/">
<أ href = ل"https://example.com/blah/">
ويتم تنفيذ هذا حاليا باستخدام اثنين من التعابير العادية التبسيط وurlparse.urljoin () (ملاحظة: الافتراضات القديمة إلى [ل-ZA-Z] +):
# على سبيل المثال أ href = "http://google.com"
re.sub (ص '(SRC | أ href) = "٪ الصورة: //'٪ القديم، ص ' 1 ="٪ الصورة: //'٪ جديد، ...)
# على سبيل المثال أ href = "منتجات ../"
re.findall (ص "" "(SRC | أ href) = (" | ") ([من الألف إلى الياء] [على بعد Z0-9 + -.] *:؟!.؟) (*) 2" "")
عندما يتم استبدال مسار نسبي (على سبيل المثال ../products) انه انضم إلى request.path. لهذا العمل، يجب أن يحتوي على سياق القالب HttpRequest في متغير الطلب. ويمكن تحقيق ذلك عن طريق استخدام RequestContext واضاف "django.core.context_processors.request" إلى الإعداد TEMPLATE_CONTEXT_PROCESSORS.
هو عرض ambiguitity المجال عند protocolified مسار نسبي (على سبيل المثال / المنتجات / () لأنه يجب تحديد المجال). تتم التخمينات المجال في الترتيب التالي:
1. request.META ["HTTP_HOST"] - عندما يحتوي سياق الطلب
2. Site.objects.get_current (). بالمجال
تركيب
1. تحميل وتثبيت: نقطة تثبيت جانغو-protocolify
2. أضف "protocolify" إلى الإعداد INSTALLED_APPS في المشروع
المتطلبات:.
بيثون
جانغو
لم يتم العثور على التعليقات