Подтвердить что ты не робот

У Django есть HTML-помощники?

Есть ли в Django теги шаблонов для создания общей разметки HTML? Например, я знаю, что я могу получить URL-адрес, используя

{% url mapper.views.foo %}

Но это только дает мне URL, а не код HTML, чтобы создать ссылку. У Django есть что-то похожее на Rails-link_to helper? Я нашел django-helpers, но поскольку это обычная вещь, я думал, что у Django есть что-то встроенное.

4b9b3361

Ответ 1

Нет, это не так.

Джеймс Беннетт ответил на аналогичный вопрос некоторое время назад, относительно встроенных JavaScript-помощников Rails.

Действительно, вряд ли у Django будет встроенная функциональность "помощника". Причина, если я правильно понимаю, связана с основной философией Django по сохранению слабо связанному. Наличие встроенного встроенного функционального модуля позволяет связать Django с конкретной библиотекой JavaScript или (в вашем случае) html-типом документа.

EG. Что произойдет, если/когда наконец-то будет реализован HTML 5, а Django создает разметку HTML 4 или XHTML?

Сказав это, структура шаблонов Django действительно гибкая, и было бы нелегко написать свои собственные теги/фильтры, которые сделали что вы хотели. Я в основном дизайнер, и я смог собрать пару пользовательских тегов, которые работали как шарм.

Ответ 2

Цель помощников - это не то, что здесь подразумевается, чтобы помочь разработчикам, которые не знают, как писать HTML. Цель состоит в том, чтобы инкапсулировать общую функциональность - так что вам не нужно писать одну и ту же тысячу раз - и предоставить одно место для редактирования обычного HTML, используемого во всем приложении.

По той же причине шаблоны и SSI полезны - не потому, что люди не знают, как писать HTML в своих верхних и нижних колонтитулах, но иногда вы хотите написать его только один раз.

EG. Что произойдет, если/когда HTML 5 наконец, реализовано, и Django генерирование разметки HTML 4 или XHTML?

То же самое происходит, когда HTML 5 реализуется, и все ваши шаблоны написаны в повторяющемся HTML, за исключением намного проще.

Другие сообщения уже ответили на вопрос, связавшись с документами настраиваемые теги шаблонов; вы можете использовать теги и фильтры, чтобы создавать свои собственные, но нет, их нет.

Ответ 3

он не выглядит так, как будто они встроены, но здесь несколько фрагментов. похоже, было бы довольно легко создать этих помощников:

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

Ответ 4

Ниже приведен список всех тегов и фильтров шаблонов, встроенных в Django. В ядре Django не так много HTML-помощников, как Rails, потому что участники Django предполагали, что веб-разработчик хорошо знает HTML. Как указано в saturdaypalace, очень маловероятно, что помощники AJAX будут добавлены в Django, поскольку это приведет к соединению Django с конкретной библиотекой JavaScript.

Очень легко писать свои собственные теги шаблонов в Django (часто вам нужно просто определить одну функцию, аналогичную Rails). Вы можете переопределить большинство помощников Rails в Django в течение дня или двух.

Ответ 5

Держу пари, если будет какое-либо согласие с тем, что является общим html, будет и модуль помощников, только для полноты (или потому, что у других это есть).;)

Кроме того, система шаблонов Django создается в основном для людей с HTML, которые уже знают, как писать теги p, img и a и не нуждаются в каких-либо помощниках для этого. С другой стороны, есть разработчики Python, которые пишут код и не заботятся, если переменная, помещенная в контекст, заключена в div или span (идеальный пример разделения парадигмы проблем). Если вам нужно объединить эти два мира, вы сделаете это самостоятельно (или посмотрите на другой код).

Ответ 6

Это не ответит напрямую на вопрос, но почему бы не использовать <a href="{% url mapper.views.foo %}">foo</a> в шаблоне?