57 votes

Django: Passage à Jinja2?

J'ai quelques sites Django de petite taille (500 ou 600 lignes de code de gabarit) et j'aimerais les migrer vers Jinja2… Mais j'aimerais avoir une idée du travail que cela va occasionner. Donc, en général, combien de travail représente la migration d’un petit site Django vers Jinja2? Et est-ce que "ça vaut le coup"?

53voto

Brian M. Hunt Points 12506

Alors que c'est juste ma propre expérience, j'ai trouvé la conversion de Django à Jinja2 être utile pour les raisons suivantes:

  1. La conception et la mise en œuvre de Jinja2 semble plus intuitif pour moi, à la fois en tant que développeur et concepteur de modèle;
  2. Jinja2 est plus extensible (au moins dans les solutions que j'ai cherché à étendre mon moteur de template);
  3. Jinja2 est plus flexible en permettant à la logique de l'exécution de code (mais il vous donne assez de corde pour se pendre);
  4. Jinja2 est considéré comme nettement plus rapide (bien que je n'ai pas fait de points de référence, c'est toujours sujet à débat, selon les tests utilisés, et en tout cas une grande partie de leur pertinence dans le total du temps d'attente pour une requête qui a à voir DB recherches);
  5. Jinja2 donne beaucoup plus utile d'erreur de la sortie de Django (c'est à dire des traces pour le numéro de la ligne dans le modèle où l'erreur s'est produite). Edit: d'Après Dor du commentaire, Django donne des messages d'erreur utiles de ce point à la ligne et au contexte d'un problème, un peu comme Jinja2.

Si vous n'avez pas eu le moindre problème avec Django moteur de template, Jinja2 doit se sentir relativement intuitive, si peut-être un peu plus poli (ou il l'a fait pour moi, en tout cas). Ainsi, j'ai trouvé l' Coffin projet bien écrit et raisonnablement utile lors de la conversion de Django à Jinja2 – à la fois pour son utilisation, et comme un exemple de la façon de prolonger Jinja2.

Tout cela étant dit, de Django reinhardt, modèle de moteur est solide et tout à fait capables pour la plupart des tâches. Je crois que c'est amélioré dans la prochaine version de Django, et il est tout à fait beaucoup d'efforts pour ajouter à ses capacités par un certain nombre de développeurs dédiés. En conséquence il n'y a pas de soucis de devenir non pris en charge à court et à moyen terme.

Encore une fois, c'est juste mon expérience, pour ce que ça vaut, j'espère que c'est utile.

4voto

Arthur Alvim Points 107

Il y a aussi django-jinja. https://github.com/niwibe/django-jinja

Nouveau et beau projet. http://niwibe.github.io/django-jinja/

Il prétend être une intégration jinja2 simple et non obstructive avec Django.

3voto

Srikar Appal Points 26892

À partir de ce que vous avez dit, c'est peut-être pas la peine de migrer vers Jinja2. Il ya des tonnes de filtres dans Django Modèles qui pourraient vous aider à faire toutes les opérations mathématiques.

Concernant le fonctionnement de la liste, quels sont exactement vous parler? Si vous voulez une liste particulière de l'opération pour être pris en charge dans le Modèle, que d'écrire un filtre personnalisé.

Si vous pensez à ce sujet, c'est par la conception que les modèles Django ne pas avoir trop de "constructions de programmation". Modèles HTML doit être telle...

2voto

Ravi Kumar Points 459

Deux projets qui tentent d'intégrer Jinja dans Django avec de simples étapes d'intégration et joliment crochets avec Django -

  1. Cercueil
  2. Chouwa

Je suis de l'intégrer tout de suite à l'expérience si ils ont trop de travail avec Django contrib apps comme Django Admin. Mais j'ai l'impression, il sera disponible pour le projet des applications et Django template par défaut du système sera utilisé dans les applications internes comme Admin.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X