7
votes

Devrais-je utiliser Mako pour modèles?

J'ai envisagé une solution de modèles, bien que mes choix soient entre Mako et Genshi. Je trouve des modèles à Genshi un peu laids, alors je me transforme plus vers Mako.

Je suis allé se demander: qu'est-ce qui est si bon sur le fait que Mako permet un code python incorporé? Comment est-il pratique pour la moyenne Joe?

ne permettrait pas de modeler que suffit sans avoir un code python incorporé?


0 commentaires

5 Réponses :


2
votes

Cela semble être un peu religieux. Les modèles Django prennent une ligne difficile: aucun code dans les modèles. Ils le font en raison de leur histoire en tant que système utilisé dans les magasins où il y a une séparation claire entre ceux qui écrivent du code et ceux qui créent des pages. D'autres (peut-être vous) ne font pas une distinction si claire et se sentirait plus à l'aise d'avoir une ligne plus flexible entre la mise en page et la logique.

Cela revient vraiment à une question de goût.


0 commentaires



2
votes

Genshi est conçu (lu: biaisé, optimisé) pour la génération de documents XML (même s'il offre une assistance pour générer tout type de document texte). Les modèles de Mako et Django sont conçus comme le système de modèles Texte générique. Evoque également, mais avec une différence fondamentale qu'il fait le choix de conception pour permettre uniquement à Python expressions < / em> dans les modèles, c'est-à-dire aucun Python déclarations .

Un résultat net important de ceci est que Evoque est capable d'exécuter une évaluation de modèle dans un bac à sable - c'est-à-dire que vous pourriez donner aux utilisateurs sans confiance en écriture-accès à un code source d'un modèle - une fonctionnalité pratiquement impossible pour les moteurs de modèles qui Autoriser également l'intégration des les déclarations de Python . Oh, et tout en ne perçant aucun dans une comparaison directe des caractéristiques, Evoque est dans certains cas effectivement plus vite que Mako, et elle fonctionne également sur Python 3.


0 commentaires

16
votes

ne permettrait pas de modeler que suffit sans avoir un code python incorporé?

Uniquement si votre langage de modèles a suffisamment de fonctionnalités logiques qu'il s'agit essentiellement d'une langue de script en soi. À quel point, vous pourriez aussi bien avoir utilisé Python.

Les sites plus impliqués ont souvent besoin de la logique de présentation complexe et des structures modèles non triviales telles que des sections répétées dans différents endroits / pages et arbres récursifs. Ce n'est pas amusant si votre langage de modèles attache vos mains derrière votre dos, car il prend la position religieuse que "le code dans le modèle est mauvais".

Ensuite, vous venez de finir par écrire des fonctions d'assistant de présentation dans votre logique commerciale Python, qui est un pire mélange de la présentation et de la logique d'application que vous deviez commencer par. Langues qui prennent le courant de vous parce qu'ils ne vous font pas confiance pour l'utiliser avec goût sont boiteux.


0 commentaires