Django ، HTML التلقائي "تعقيم" عند وضع HTML على القالب ، كيف يوقفه؟

StackOverflow https://stackoverflow.com/questions/3551599

سؤال

أنا في حيرة من أمره من هذا الأمر لأنه يبدو أن قوالب Django لها مرشحات HTML اختيارية ولكن يبدو أن هذا يحدث تلقائيًا .. أقوم بعمل هذا التطبيق التجريبي حيث يقوم المستخدم بإجراء يدعو إلى نص Python الذي يسترد عنوان URL ، بعد ذلك ، أريد أن أعرض هذا في نافذة جديدة .. كل شيء على ما يرام إلا عندما يعود الشاشة ، يتم تطهير HTML بهذا التنسيق (أرى هذا عندما أشاهد مصدر الصفحة ، في المتصفح ، يظهر على أنه HTML العادي:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html lang="en" xml:lang="en" xmlns="http://www.w3.org/1999/xhtml"><head><meta content="text/html; charset=utf-8" http-equiv="content-type" /><script type="text/javascript">//<![CDATA[
si_ST=new Date

هذا هو إصدار HTML العادي من نفسه:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html lang="en" xml:lang="en" xmlns="http://www.w3.org/1999/xhtml"><head><meta content="text/html; charset=utf-8" http-equiv="content-type" /><script type="text/javascript">//<![CDATA[ si_ST=new Date //]]></script><script type="text/javascript">//<![CDATA[ _G={ST:(si_ST?si_ST:new Date),Mkt:"en-

أنا فقط أخرج هذا إلى كتلة أساسية في قالب HTML الخاص بي ، لا يحتوي القالب على تنسيق آخر (لا يوجد HTML ، إلخ) ، فقط كتلة واحدة حيث يذهب هذا المخرج .. أي نصيحة حول سبب حدوث ذلك وكيفية عرض العادية HTML (لذلك سوف يعرض الصفحة في المتصفح وليس نص HTML) هو موضع تقدير .. شكرا

هل كانت مفيدة؟

المحلول

استخدم المرشح الآمن:

{{ myvariable|safe }}

إذا كنت بحاجة إلى أجزاء كبيرة من القالب الخاص بك معالجة مثل هذا (أي ، إذا وجدت نفسك تستخدم |safe مرارًا وتكرارًا) ، يمكنك تعطيل البيع الكامل:

{% autoescape off %}
blah {{myvariable}} blah {{myothervariable}}
{% endautoescape %}

نصائح أخرى

ألقِ نظرة على الفلتر "الآمن" ، الذي يعطل الافتراض الافتراضي لـ Django:

http://docs.djangoproject.com/en/1.2/ref/templates/builtins/#safe

يوجد ايضا Attoescape الذي يتحكم في هروب كتلة واسعة.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top