J'apprends actuellement Python et je viens d'un solide contexte C#. Je n'arrête pas d'entendre parler de faire des choses de manière pythonique pour profiter de la nature dynamique de la langue et j'en reçois certaines et d'autres pas.Utiliser des classes pour les vues Django, est-ce Pythonic?
Je crée un site avec Django et mon approche des vues est d'utiliser des classes. Ma pensée actuelle est d'avoir une classe de base qui a quelques trucs sur le modèle et le modèle à utiliser. Cela aura une page de type funky 404 par défaut avec la recherche de site et d'autres choses sur la base de toutes les autres pages. Ainsi, chaque zone du site aura ses propres EG News et toutes les fonctions liées au modèle et le filtrage seront dans cette classe avec une classe supplémentaire en plus pour les requêtes HTML ou AJAX. Donc, vous auriez quelque chose comme ceci:
\ Site \ common \ ViewBase
- \ nouvelles \ NewsBase (ViewBase)
- \ nouvelles \ HtmlView (NewsBase)
- \ nouvelles \ AJAXView (NewsBase)
URL sera mis en correspondance comme http://tld/news/latest cartes à site.news.htmlview et http://tld/news//à/sera également mis en correspondance site.news.htmlview mais la classe va comprendre ce qu'il faut faire avec le paramètres supplémentaires.
C'est à peu près ce que je ferais en C# mais le tutoriel de Django ne montre que l'utilisation de méthodes pour les vues, me demandant si ce n'est pas une solution très pythonique?
Pensées?
Editer: Après un commentaire de S.Lott sur la sécurité des threads, vaut-il mieux laisser les fonctions telles quelles et les faire créer une instance d'une classe et appeler une méthode dessus?
Ce que je cherche est un endroit pour mettre un code commun pour chaque section du site pour filtrer le modèle, l'authentification pour le site, etc
Le code qui fonctionne sur les tables de vos modèles devrait être mis dans ** gestionnaires ** http://docs.djangoproject.com/fr/1.1/topics/db/managers/ –
Je ne vois pas pourquoi il wouldn Ne soyez pas Pythonic ... Je pense que la question est de savoir si c'est Djangoic. – JAL