Avez-vous envisagé d'utiliser Django et avez-vous trouvé de bonnes raisons de ne pas le faire?
Réponses
Trop de publicités?Parce que Cal Henderson m'a dit de ne pas le faire .
Ma réponse était un peu ironique, mais Cal Henderson a donné une conversation drôle et perspicace d'une heure sur Django et les endroits où elle pourrait ne pas aboutir.
J'ai construit la première génération de notre site web interne à l'aide de Django et au début, cela a bien fonctionné. Mais au fil du temps, j'ai continué de me trouver en essayant de travailler autour de ses contraintes, et a finalement décidé de déplacer hors de lui. Nous utilisons maintenant CherryPy avec Preppy modèles et pas d'ORM.
Les problèmes ont commencé avec l'ORM et l'impossibilité de faire de tous types d'agrégation. Nous sommes une société de services financiers et de la nécessité de faire beaucoup de reporting des données financières détaillées, généralement regroupés en diverses manières. Parce que l'ORM de Django n'a pas aidé les choses que nous devions faire, nous avons commencé à faire plus et plus directe SQL. Mais quand vous le faites, d'autres parties de Django ne fonctionne pas aussi bien, comme les modèles.
Très vite, je me retrouve le plus souvent en utilisant Django pour son mappage d'URL et de très peu de chose. Donc, c'est quand j'ai décidé de chercher quelque chose qui a été plus d'une bibliothèque (choisissez l'Api que vous voulez utiliser) puis un cadre (s'adapter à votre problème dans le cadre de la façon de le résoudre).
Certains problèmes d'ajustement de Django bien (j'ai écrit mon premier blog et qui a bien fonctionné), mais ce n'est pas un bon ajustement pour tous les sites web dehors là.
L'argument le plus fort qui pesaient contre Django à notre organisation, qui a été précédemment PHP boutique-a été qu'il serait plus difficile de trouver Python/Django développeurs à l'avenir si l'un de nous a jamais quitté, plutôt que de trouver des devs PHP. C'est une raison commerciale, pas un tech de la raison, mais il était difficile de discuter avec la direction.
Heureusement, nous avons été en mesure de faire assez de cas que Django permettrait de résoudre beaucoup de nos problèmes actuels, de manière à permettre à la complexité de l'échelle, sans créer des nids de rats - ce que nous ne sommes que argument et est devenu un Django boutique.
Pour moi, le plus sérieux concurrent semble être TurboGears. TurboGears n'est pas comme tout compris comme Django. Vous pouvez choisir votre propre ORM (la valeur par défaut est SQLObject) et vos propres modèles (par défaut, le Kid). Je vais essayer d'utiliser SQLAlchemy et Mako, moi-même.
La distinction est que Django n'a pas (dans les anciennes versions) ont un bon WSGI pipeline de traitement. De Django reinhardt, les fonctions d'affichage ne sont pas très WSGI-comme. Django peut, toutefois, de la brancher sur une WSGI pipeline. TurboGears et les Pylônes sont plus agressive essayer d'intégrer WSGI dans leurs cadres.
Pour certains types de services web, d'un bon, simple WSGI pipeline peut-être mieux que Django-RESTE de l'interface. En effet, Django-RESTE interface peut pas sauver tout le codage, lorsque vous obtenez plus complexes autorisation des tests et des complexes de POST-traitement des demandes.
Je commence à repenser notre utilisation de Django-REPOS, puisque j'ai dû appliquer un assez grand nombre de correctifs et d'extensions pour notre fine modèle d'autorisation.