Articles précédents : Logiciel
- [25] Play!, un autre framework web Java
- [10] InDefero, clone Google Code en version 0.1.0
- [103] Chrome, le futur navigateur de Google
- [19] Sortie de Löve 0.4.0, moteur libre de jeu en 2D
- [13] Sortie de QElectroTech 0.11
- [9] Sortie de l'ENT Prométhée 7.1
- [42] Balazar III
- [23] Via libère un pilote pour ses chipsets graphiques
- [19] Dolibarr ERP/CRM 2.4 stable est disponible
- [18] Cinelerra 4 est sorti
Liens connexes
- Annonce officielle (569 hits)
- Plus d'informations sur les avancées de la version 1.0 (995 hits)
- Communauté française (579 hits)
- Capture d'ecran de l'interface d'administration (984 hits)
- Django 1.0 release notes (392 hits)
- Guide pour la migration vers la version 1.0 (370 hits)
Dépêche modérée par
Dépêche éditée par
Logiciel : Sortie de la version 1.0 de Django
Posté par Johan Charpentier (Jabber id, ). Modéré le 04 septembre 2008.Pour ceux qui ne le connaissent pas, Django est un framework écrit en Python servant à construire des applications Web.
Annonce officielle (569 hits)
Plus d'informations sur les avancées de la version 1.0 (995 hits)
Communauté française (579 hits)
Capture d'ecran de l'interface d'administration (984 hits)
Django 1.0 release notes (392 hits)
Guide pour la migration vers la version 1.0 (370 hits)
> Lire la suite (14 commentaires, moyenne: 2,3). [dépêche : 5303 caractères]
Les grandes fonctionnalités de cette caisse à outils sont :
- Mapping relationnel-objet : vos modèles de données sont des classes Python, et vous y accédez sans taper une ligne de SQL ;
- Génération automatique de l'interface d'administration : à partir des modèles que vous avez créés, Django vous génère une interface d'administration de ces modèles très performante, vous pouvez ensuite modifier facilement les options de cette interface ;
- URLs Flexibles : les URLs sont des expressions régulières, vous n'avez aucune limite particulière imposée par le framework ;
- Un langage de template simple mais puissant : en effet, l'une des philosophies de ce template n'est justement pas de créer un langage de templates avec assignation de variables ou structures logiques complexes. Mais ce langage vous permettra d'insérer facilement vos objets python à l'intérieur de votre code HTML ;
- Localisation : Django dispose d'un support complet des applications en plusieurs langues, vous permettant de spécifier les chaînes de caractères à traduire et mettant à disposition des outils pour des fonctionnalités spécifiques au langage ;
- Cache : comme la plupart des applications web modernes , un système performant de cache est disponible (interaction avec memcached par exemple) ;
- Système de tests intégré : un des éléments les plus importants de ce framework est son système de Test_unitaire. En effet il fourni tous les outils pour construire des suites de tests très performantes, interrogeant directement le framework et incluant les assertions classiques du web (code de retour HTML, validation de formulaires), gestion des sessions d'authentification, ou même des mails envoyés.
Bien que Django mette à disposition des outils de haut niveau, permettant notamment la génération automatique de vues à partir de modèles, toutes les fonctions peuvent être facilement surclassées par vos propres gestionnaires bas niveau (gestionnaire de sessions, ORM ou cache par exemple).
Pour ceux qui connaissaient déjà, voici quelques avancées de la version 1.0 par rapport à la version stable précédente :
"Since Django 0.96, we've made over 4,000 code commits, fixed more than 2,000 bugs, and edited, added, or removed around 350,000 lines of code. We've also added 40,000 lines of new documentation, and greatly improved what was already there."
Ce qui donne a peu de choses prés :
"Depuis Django 0.96, nous avons effectué 4 000 commit de code, résolu plus de 2 000 bogues, édité, ajouté ou supprimé plus de 350 000 lignes de code. Nous avons aussi ajouté 40 000 lignes de documentation, et grandement amélioré l'existante".
En résumé :
- Support de l'Unicode ;
- Interface d'administration gérée par newsforms ;
- Ajout du support géographique (GeoDjango) ;
- Système de commentaires ;
- Support de Jython ;
- Documentation générée par Sphinx.
N'hésitez pas à visiter la page BackwardsIncompatibleChanges pour prendre connaissance de tout les changements qui pourraient impacter votre code.
Un dernier petit mot sur la documentation, au format ReStructuredText (donc très lisible en format source), et que vous pouvez grâce à Sphinx (et sous réserve d'avoir installé ce dernier), transformer en pages HTML, LaTeX, puis PDF avec un simple make html par exemple.
Et si vous n'aimez pas Python, d'autres frameworks existent comme Ruby on Rails (RoR) en Ruby, ou Symfony en PHP (ainsi que Pluf que j'ai eu l'occasion de découvrir ici même) qui, bien qu'ils aient une approche différente de la chose, conservent la même définition.
Mise à jour
À noter qu'une faille de sécurité a été révélé avant la sortie de la 1.0.
Elle affecte les versions :
- Django development trunk
- Django 0.96
- Django 0.95
- Django 0.91
Donc c'est peut-être une bonne raison pour mettre à jour vers la 1.0, mais si vous préférez conserver votre code, les 3 versions cités ont été corrigées.
Pour plus d'info : http://www.djangoproject.com/weblog/2008/sep/02/security/
"We may not live to see yesterday". (Hoagie)
ORM
Je ne sait pas si c'est moi mais, dans les framework Mega-Top-Moumoute avec ORM comme Django, RoR,Symfony, **placez ici votre ORM préféré** c'est toujours assez difficile ezt totalement inefficace d'interfacer avec une DB plus complexe que juste des relations 1-1 ou 1-many...
Genre un truc avec une 50aines de table liées entre elle.
-
[^]Re: ORM
Posté par Émilien Tlapale (page perso, ) le 04/09/2008 à 17:47. (lien). Évalué à 2.SQLAlchemy [1] s'intègre très bien dans TurboGears [2]…
[1] http://www.sqlalchemy.org/
[2] http://turbogears.org/
-
[^]Re: ORM
Posté par Brice Leroy (Jabber id, page perso, ) le 04/09/2008 à 19:13. (lien). Évalué à 2.Et bien en fait non, il permet de realiser des liens tres complexes sur les tables. En fait, la question soulevée est interressante car django lie les tables entres elle grâce aux models. Ainsi vous pouvez accéder a des elements lié de façon tres tres lointaine sans limite (U->V->W->X->Y->Z... ).
Pour illustration :
Blog.objects.filter(posts__comments__user__profile__iexact == 'robert')
ce qui renvoie les blogs ou l'utilisateur aillant un profile (sans case match) 'robert' a mis un commentaire sur aux moins des posts. (ce n'est qu'un exemple je n'ai pas creer de models pour le tester)
J'avoue avoir moi aussi assez sceptique quand a un nouveau framework ORM web mais il faut avouer que coupler a apache le resultat est performant et d'un confort de travail impressionnant (vous créez le model, django fait le reste - contrairement a cake par exemple). L'interface d'administration est livrable sans travaux (elle dispose de toute les barrieres de controle de données graces aux definition des models) et la generation de page web grace a l'heritage des templates et de leur block permet de rendre en maquette dynamique en l'espace de peu de temps (avec 1 an d'experience aujourd'hui, une page complete avec AJAX, entree client et controles me prend entre 1 et 4 heures). Ajoutez a cela que le models MVC est l'un des meilleurs pour le maintient et la modification du code, vous obtenez un environnement de developpement de tres bonne qualité.
Reste que peu ou pas d'hebergeur fournissent a prix raisonnable django ce qui le rend plus orienté pour des sites pro que pour le site perso.-
[^]Re: ORM
Posté par alpage (Jabber id, page perso, ) le 04/09/2008 à 20:03. (lien). Évalué à 3.Tiens j'en profite pour poser une petite question. Comment gerer les évolutions du schéma de la bado ? Car à ma connaissance il n'y a rien dans le core de Django pour ça. Les migrations de RoR me manquent.
-
[^]Re: ORM
Posté par Johan Charpentier (Jabber id, ) le 04/09/2008 à 20:42. (lien). Évalué à 2.Personnellement je ne connais pas d'outil de migration.
J'ai pour habitude d'exporter les données en format JSON, de les traiter avec un petit script python (l'écriture d'un json est parfaitement compatible avec les types de base de python) et de les réinjecter une fois le traitement effectué.
Ça peut en effet paraître laborieux pour les utilisateurs de RoR...--
"We may not live to see yesterday". (Hoagie)-
[^]Re: ORM
-
-
[^]Re: ORM
Posté par Brice Leroy (Jabber id, page perso, ) le 04/09/2008 à 20:54. (lien). Évalué à 2.la commande ./manage.py sql application_name renvoie le code SQL pour la création. En effet ça ne permet pas la modification des tables, mais ça vous permet de savoir ce qui est nécessaire de créer comme champs :).
Petite note, "Comment gérer les évolutions du schéma de la bado ?" , en réalité vous écrivez le model de données en python et django génère le schéma de base de données (a l'inverse de cake comme je l'ai dit précédemment).
-
[^]Re: ORM
Posté par Loïc d'Anterroches (Jabber id, page perso, ) le 04/09/2008 à 21:15. (lien). Évalué à 5.Si les migrations t'intéresse, c'est effectivement le sujet du moment pour la communauté Django. Simon Willison propose sa méthode et fait des liens vers les différentes solutions ici :
http://simonwillison.net/2008/Sep/3/dmigrations/
Le fait est qu'il n'existe pas de méthode standard/officielle pour le moment. Maintenant, il y a un désir de la part des développeurs d'arriver à ajouter cela par défaut, donc cela arrivera bien vite.
-
[^]Re: ORM
Posté par alpage (Jabber id, page perso, ) le 04/09/2008 à 23:05. (lien). Évalué à 2.Bien, il ne me reste donc plus qu'à évaluer dmigration, django-evolution, django-schemaevolution, South, deseb et yadsel. Dites-moi si j'en oublie ;o)
-
-
-
[^]Re: ORM
Posté par rewind () le 04/09/2008 à 19:19. (lien). Évalué à 2.Symfony n'a pas son propre ORM, il peut utiliser aussi bien Propel [1] que Doctrine [2]. Doctrine a l'air de gérer pas mal de choses dont le many-to-many. Pour Propel, ça se fait en partie à la main.
[1] http://propel.phpdb.org/
[2] http://www.doctrine-project.org/-
[^]Re: ORM
Posté par pankkake (Jabber id, page perso, ) le 06/09/2008 à 17:00. (lien). Évalué à 1.J'utilise Propel (le projet a été commencé avec Propel, et ce serait difficile de tout changer). Il faut parfois faire des trucs à la main, mais c'est quand même très simple à faire.
Enfin, il arrive parfois qu'il y ait des requêtes à faire à la main (et encore, il y a pas mal d'outils pour faciliter la tâche, Creole ou PDO suivant la version de Propel), et on peut facilement utiliser les fonctions "hydrate" pour revenir dans du Propel.
J'étais parmi les sceptiques au départ - surtout qu'écrire du SQL ne m'a jamais dérangé, au contraire - mais maintenant je suis plutôt convaincu.-
[^]Re: ORM
-
-
Aide mémoire
vous trouverez dans le liens suivant un PDF aide memoire sur Django et ces commandes.
http://www.mercurytide.co.uk/media/whitepapers/django-cheat-(...)



Cette discussion est archivée, il n'est plus possible de laisser des commentaires.
Note : les commentaires appartiennent à ceux qui les ont postés. Nous n'en sommes pas responsables.