سؤال

هل لدى Django أي علامات قالبية لإنشاء علامات HTML الشائعة؟على سبيل المثال، أعلم أنه يمكنني الحصول على عنوان url باستخدامه

{% url mapper.views.foo %}

ولكن هذا لا يمنحني سوى عنوان URL وليس رمز HTML لإنشاء الرابط.هل لدى Django أي شيء مشابه لمساعد Rails link_to؟وجدت django-helpers ولكن نظرًا لأن هذا أمر شائع، فقد اعتقدت أن Django سيحتوي على شيء مدمج.

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

المحلول

لا لا.

جيمس بينيت أجاب أ سؤال مماثل منذ فترة، فيما يتعلق بمساعدات JavaScript المضمنة في Rails.

إنه حقًا من غير المرجح أن يكون لدى Django وظيفة "مساعدة" مدمجة على الإطلاق.السبب، إذا فهمت بشكل صحيح، يتعلق بفلسفة جانغو الأساسية المتمثلة في الاحتفاظ بالأشياء المتباعدة.يؤدي وجود هذا النوع من الوظائف المساعدة المضمنة إلى اقتران Django بمكتبة JavaScript معينة أو نوع مستند html (في حالتك).

على سبيل المثال.ماذا يحدث إذا/عندما يتم تنفيذ HTML 5 أخيرًا ويقوم Django بإنشاء ترميز HTML 4 أو XHTML؟

ومع ذلك، فإن إطار عمل قالب Django مرن حقًا، ولن يكون من الصعب جدًا القيام بذلك اكتب العلامات/المرشحات الخاصة بك هذا فعل ما أردت.أنا في الغالب مصمم، وقد تمكنت من تجميع بعض العلامات المخصصة التي تعمل كالسحر.

نصائح أخرى

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

وهذا هو نفس السبب الذي يجعل القوالب وSSI مفيدة - ليس لأن الأشخاص لا يعرفون كيفية كتابة HTML في الرؤوس والتذييلات الخاصة بهم، ولكن في بعض الأحيان تريد كتابتها مرة واحدة فقط.

على سبيل المثال.ماذا يحدث إذا تم تنفيذ HTML 5 أخيرًا ويقوم Django بتوليد HTML 4 أو XHTML؟

نفس الشيء الذي يحدث عند تنفيذ HTML 5 وكتابة جميع القوالب الخاصة بك بلغة HTML المتكررة، إلا أنها أسهل كثيرًا.

لقد أجابت المشاركات الأخرى بالفعل على السؤال، مع ربط المستندات الموجودة على علامات القالب المخصصة;يمكنك استخدام العلامات والمرشحات لإنشاء العلامات والمرشحات الخاصة بك، ولكن لا، لا توجد أي منها مدمجة.

لا يبدو أنها مدمجة ولكن إليك بعض المقتطفات.يبدو أنه سيكون من السهل جدًا إنشاء هؤلاء المساعدين:

http://www.djangosnippets.org/snippets/441/

هنا أ قائمة بجميع علامات القالب والمرشحات المضمنة في Django.لا يحتوي نواة Django على الكثير من مساعدات HTML مثل Rails، لأن المساهمين في Django افترضوا أن مطور الويب يعرف HTML جيدًا.كما ذكر saturdaypalace، من غير المحتمل جدًا إضافة مساعدي AJAX إلى Django، لأنه قد يؤدي إلى اقتران Django بمكتبة JavaScript محددة.

من السهل جدًا القيام بذلك اكتب علامات القالب الخاصة بك في Django (غالبًا ما تحتاج فقط إلى تحديد وظيفة واحدة، مشابهة لـ Rails).يمكنك إعادة تشغيل معظم مساعدي Rails في Django خلال يوم أو يومين.

أراهن أنه سيكون هناك أي موافقة على ما هو عليه أتش تي أم أل المشتركة, ، ستكون هناك وحدة مساعدة أيضًا، فقط من أجل الاكتمال (أو لأن الآخرين يمتلكونها).;)

بخلاف ذلك، تم تصميم نظام قوالب Django في الغالب للأشخاص الذين يستخدمون لغة HTML، والذين يعرفون بالفعل كيفية الكتابة p, img و a العلامات ولا تحتاج إلى أي مساعدين من أجل هذا.على الجانب الآخر هناك مطورو بايثون، الذين يكتبون التعليمات البرمجية ولا يهتمون إذا كان المتغير الذي يضعونه في السياق محاطًا بـ div او بواسطة span (مثال مثالي ل فصل المخاوف نموذج).إذا كنت بحاجة إلى الانضمام إلى هذين العالمين، فعليك القيام بذلك بنفسك (أو ابحث عن كود شخص آخر).

هذا لن يجيب مباشرة على السؤال، ولكن لماذا لا تستخدم <a href="{% url mapper.views.foo %}">foo</a> في القالب إذن؟

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