Django是否有任何模板標籤來生成常見的HTML標記?例如,我知道我可以使用網址Django有HTML助手嗎?
{% url mapper.views.foo %}
但是,這隻會給我的URL而不是HTML代碼來創建鏈接。 Django是否有類似於Rails的link_to helper?我發現django-helpers,但由於這是一個常見的事情,我認爲Django會有內置的東西。
Django是否有任何模板標籤來生成常見的HTML標記?例如,我知道我可以使用網址Django有HTML助手嗎?
{% url mapper.views.foo %}
但是,這隻會給我的URL而不是HTML代碼來創建鏈接。 Django是否有類似於Rails的link_to helper?我發現django-helpers,但由於這是一個常見的事情,我認爲Django會有內置的東西。
不,它不需要。
James Bennett回答了一段similar question,關於Rails的內置JavaScript助手。
這是真的不太可能Django會有內置的'helper'功能。如果我理解正確,理由是與Django的核心理念loosely coupled有關。內置這種輔助功能會導致將Django與特定的JavaScript庫或(在您的情況下)html文檔類型耦合。
EG。如果/最終實現HTML 5並且Django生成HTML 4或XHTML標記,會發生什麼情況?
話雖如此,Django的模板框架是非常靈活的,並且write your own tags/filters不會非常難以達到您想要的效果。我大多是一名設計師,而且我已經能夠組裝一對像魅力一樣工作的定製標籤。
它看起來不像他們內置,但這裏有一些片段。它看起來會是很容易創建這些助手:
這是list of all template tags and filters built into Django。 Django核心沒有像Rails那樣多的HTML助手,因爲Django貢獻者認爲web開發人員非常瞭解HTML。正如saturdaypalace所說,AJAX助手很少會被添加到Django中,因爲它會導致Django與特定的JavaScript庫耦合。
在Django中很容易找到write your own template tags(通常您只需要定義一個函數,類似於Rails)。您可以在一兩天內重新實現Django中的大部分Rails幫助器。
這不會直接回答這個問題,但爲什麼不在模板中使用<a href="{% url mapper.views.foo %}">foo</a>
呢?
我敢打賭,如果會有什麼常見的HTML的任何同意,也會有助手模塊,只是爲了完整性(或因爲其他人有它)。 ;)
除此之外,Django的模板系統主要是由對HTML的人,誰已經知道如何寫p
,img
和a
標籤,不需要任何助手了點。另一方面,Python開發人員編寫代碼,不關心他們放在上下文中的變量是否由div
或span
(範例的完美示例)所包圍。如果你需要加入這兩個世界,你可以自己去做(或者尋找其他的代碼)。
幫助者的目的不像其他人暗示的那樣幫助那些不知道如何編寫HTML的開發者。其目的是封裝常用功能 - 因此您不需要千次編寫相同的內容 - 並提供一個位置來編輯整個應用程序使用的常用HTML。
這與模板和SSI很有用的原因相同 - 不是因爲人們不知道如何在頁眉和頁腳中編寫HTML,而是有時只想寫一次。
EG。如果/當HTML 5最終實現爲 並且Django爲 會生成HTML 4或XHTML標記時會發生什麼情況?
在實現HTML 5並且所有模板都用重複HTML編寫時會發生同樣的情況,除非更容易。
其他帖子已經回答了問題,鏈接到custom template tags上的文檔;你可以使用標籤和過濾器來構建你自己的,但不,沒有任何內建的。
這看起來像是誤解了Rails助手的用法,它們並不一定與JavaScript或Ajax。導軌指南http://guides.rubyonrails.org/getting_started.html將它們描述爲提供「視圖的可重用代碼的小片段」。我發現一篇博客文章http://railspikes.com/2008/8/22/how-to-fix-your-rails-helpers將它們稱爲標記生成器。 – Sam 2011-02-25 11:29:04
我一直在使用django 4年,rails for 1. rails helpers只是捷徑,我從來沒有覺得他們需要使用Django。 – nemesisdesign 2013-05-20 09:55:06