Question

Django a-t-il des balises de modèle pour générer un balisage HTML commun? Par exemple, je sais que je peux obtenir une URL en utilisant

{% url mapper.views.foo %}

Mais cela ne me donne que l'URL et pas le code HTML pour créer le lien. Django a-t-il quelque chose de similaire à l'aide link_to de Rails? J'ai trouvé django-helpers , mais comme c'est une chose courante, je pensais que Django aurait quelque chose intégré.

Était-ce utile?

La solution

Non, ce n'est pas le cas.

James Bennett a répondu à une une question similaire il y a quelque temps, en ce qui concerne les aides JavaScript de Rails.

Il est vraiment peu probable que Django intègre la fonctionnalité «aide». Si je comprends bien, la raison en est liée à la philosophie de base de Django consistant à conserver les éléments faiblement couplé . Avoir ce type de fonctionnalité d'aide intégrée conduit à coupler Django avec une bibliothèque JavaScript spécifique ou (dans votre cas, un type de document html).

EG. Que se passe-t-il si / quand HTML 5 est finalement implémenté et que Django génère un balisage HTML 4 ou XHTML?

Ceci dit, le framework de templates de Django est vraiment flexible et il ne serait pas très difficile de écrivez vos propres tags / filtres qui ont fait ce que vous vouliez. Moi-même, je suis principalement designer et j'ai pu créer quelques balises personnalisées qui ont fonctionné à merveille.

Autres conseils

L’aide d’aide n’a pas pour but, comme d’autres l’impliquent ici, d’aider les développeurs qui ne savent pas écrire le code HTML. Le but est d'encapsuler les fonctionnalités communes (de sorte que vous n'ayez pas besoin d'écrire la même chose mille fois) et de fournir un seul endroit pour modifier le code HTML commun utilisé dans votre application.

C’est la même raison pour laquelle les modèles et SSI sont utiles - non pas parce que les gens ne savent pas écrire le code HTML dans leurs en-têtes et leurs pieds de page, mais que vous souhaitiez parfois l’écrire une seule fois.

  

EG. Que se passe-t-il si / quand HTML 5 est   enfin mis en œuvre et Django est   générer du balisage HTML 4 ou XHTML?

Même chose qui se produit lorsque HTML 5 est implémenté et que tous vos modèles sont écrits en HTML répétitif, sauf beaucoup plus facilement.

Les autres messages ont déjà répondu à la question, en se connectant aux documents sur balises de modèles personnalisés ; vous pouvez utiliser des balises et des filtres pour créer les vôtres, mais non, il n'y en a pas.

il ne semble pas qu'ils soient intégrés, mais voici quelques extraits. il semble que ce serait assez facile de créer ces aides:

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

Voici une liste de tous les filtres et filtres de modèles intégrés à Django . Django core n'a pas autant d'aide HTML que Rails, car les contributeurs de Django ont supposé que les développeurs Web connaissaient très bien le langage HTML. Comme indiqué par saturdaypalace, il est très peu probable que des assistants AJAX soient ajoutés à Django, car cela entraînerait le couplage de Django avec une bibliothèque JavaScript spécifique.

Il est très facile de écrivez vos propres balises de gabarit dans Django (il suffit souvent de définir une fonction, semblable à Rails). Vous pouvez réimplémenter la plupart des assistants Rails à Django en un jour ou deux.

Je parie que s'il y avait un consentement de ce qui est HTML commun , il y aurait aussi un module d'aide, juste pour être complet (ou parce que d'autres l'ont). ;)

En dehors de cela, le système de gabarits Django est principalement destiné aux utilisateurs HTML, qui savent déjà écrire des balises p, img et a et n'ont besoin d'aucun assistant pour cela. . De l’autre côté, des développeurs Python écrivent du code et se moquent de savoir si la variable qu’ils ont mise en contexte est entourée par div ou par span (exemple parfait du paradigme de la séparation des problèmes ). . Si vous avez besoin de réunir ces deux mondes, vous devez le faire vous-même (ou chercher le code d'un autre).

Cela ne répondra pas directement à la question, mais pourquoi ne pas utiliser <a href="{% url mapper.views.foo %}">foo</a> dans un modèle alors?

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top