Django : Python, c’est plus fort que toi !

Aujourd’hui”hui, je vais vous présenter Django, “Le framework web pour les perfectionnistes sous pression” ! Avouez que c”est déjà pas mal comme slogan. Je vais parler ici de mon expérience personnelle d’amateur qui pratique l”informatique sur son temps libre. Donc tout ce que je peux raconter ici peut apparaître totalement FAUX à un expert en la matière, mais bon, faut bien se lancer un jour hein :) .

Les fondations

Comment creuser la base, ou la mise en place du framework dans un environnement Linux / Apache 2 / Mysql 5.

Pour ma part, je réalise tout mes essais sur mon serveur (enfin, c’est plutôt ronflant comme nom, il ne s’agit que d”un Pentium 2 avec 18Go de disque dur qui fait un bruit d”enfer hein) qui tourne sous Debian (Lenny). Pour l”installation, il m’a suffit d’installer le module Python pour Apache (facilement grâce à Aptitude). J’ai ensuite installé Django en lui même (ce qui se résume à télécharger la version en cours de développement puis créer 2-3 liens symboliques, du gâteau quoi), puis paramétrer mon httpd.conf (de même, processus très simple grâce à la très bonne documentation très bien traduite par David Larlet. Résultat, en partant de rien, un framework fonctionnel disponible en production en tout juste 5 petites minutes.

Le commencement

Où on s’assoit bien droit correctement sur sa chaise, qu’on retrousse ses manches, réajuste ses lunettes, ferme toutes les applications autres que le navigateur, et qu’on ferme la porte du bureau.

J’ai encore été agréablement surpris : la documentation est abondante. D’une part, la doc’ du site officiel qui couvre un très grosse partie et qui permet de bien dégrossir le travail. Ensuite, cette même documentation (et un peu plus) traduite sur Django-fr. Finalement, je suis tombé sur The Django Book (aussi disponible en livre papier). De toute façon, la communauté est loin d’être minime, et Google is your (only?) friend, donc pas de quoi s’inquiéter.

Au bout d”une quarantaine de minutes, on réalise une application de votes fonctionnelle (sobre, mais efficace), le tout avec très peu de code et le moteur proprement séparé de l’affichage. Que du bonheur !

Oui mais non !

“Un cri retentit dans la salle de bains…” (Tribulations, Chapitre 2, Verset XVI) Que du bonheur mais … sans compter un petit problème (que je n”ai pas réussit à résoudre, mais je cherche encore !) : la gestion des accents et de l’UTF-8 dans l”interface d”administration auto générée. En effet, Django vous génère une interface permettant l”administration de la base de donnée suivant les modèles que vous avez définit dans votre application, le tout de manière sobre et fonctionnelle. Pour ma part, un problème intervient au moment où je veux utiliser des accents dans du texte, là, il aime pas ! Mais je pense que le problème vient de moi de toute façon.

Au final

Pour le moment, je ne dispose pas encore d”assez d”éléments pour juger et émettre un point de vue plus approfondit sur Django, mais pour l’instant, voici mon bilan : Un gain de temps inimaginable : très peu de code, si les modèles de données sont bien pensés dès le départ, tout va tout seul. Des templates pratiques : Ils permettent d”étendre d’autres templates, de pouvoir émettre des valeurs par défaut et remplaçables avec des systèmes de blocs. Propreté : Le code généré est très propre, ainsi que la séparation entre les structures et l’interface. Seul point négatif pour le moment : ce problème d’accents.

Le mot de la fin : Je vais bientôt prendre un hébergement 60GP chez OVH. Mon but sera d”y développer mon espace perso (un blog surtout), en utilisant uniquement Django. Je vais tenir au courant de comment tout cela se passe.

About Thomas Pelletier

17-year old student fond of math, science and IT. I like spending my spare time building websites with nice tools such as Django, Mercurial and Textmate. New technologies and web services are some of my passions. When I've something I'd like to talk about, I write a post and publish it on this website.
This entry was posted in None and tagged , . Bookmark the permalink.
  • Zyegfryed

    Salut, Le problème d’encodage vient très certainement de ta base de données MySQL. Quelques liens : * http://parand.com/say/index.php/2008/06/11/djangomysql-how-to-fix-unicode-aka-mysterious-question-marks/ * http://blog.awarelabs.com/?p=70 * http://www.google.fr/search?q=django+utf8+mysql PS : je ne connais pas le formatage utilisé pour les commentaires, du coup les liens ne sont pas cliquables.

  • Zyegfryed

    Salut, Le problème d’encodage vient très certainement de ta base de données MySQL. Quelques liens : * http://parand.com/say/index.php/2008/06/11/djangomysql-how-to-fix-unicode-aka-mysterious-question-marks/ * http://blog.awarelabs.com/?p=70 * http://www.google.fr/search?q=django+utf8+mysql PS : je ne connais pas le formatage utilisé pour les commentaires, du coup les liens ne sont pas cliquables.

  • http://kiznet.fr/ Kizlum

    Merci pour ce retour :) Mais ce billet date un peu, et j’ai depuis résolu le problème. Comme solution, j’ai rajouté la fonction unicode() à mes modèles.

  • http://kiznet.fr/ Kizlum

    Merci pour ce retour :) Mais ce billet date un peu, et j’ai depuis résolu le problème. Comme solution, j’ai rajouté la fonction unicode() à mes modèles.

  • Zyegfryed

    Oups, je viens de voir la date du billet. Effectivement, désolé pour le commentaire inutile. En fait, tu as du changer l’URL de ton feed qui a été automatiquement reprit dans celui de Django Community. Il a donc atteri dans mon aggrégateur aujourd’hui…

  • Zyegfryed

    Oups, je viens de voir la date du billet. Effectivement, désolé pour le commentaire inutile. En fait, tu as du changer l’URL de ton feed qui a été automatiquement reprit dans celui de Django Community. Il a donc atteri dans mon aggrégateur aujourd’hui…

  • http://kiznet.fr/ Kizlum

    @Zyegfryed, pas de soucis. C’est effectivement ce qui c’est passé : suite à la refonte du site, pas mal d’URL ont changé, Jacob Kaplan-Moss (que je remercie au passage pour sa réactivité) a mit a jour la base de Django Community.

  • http://kiznet.fr/ Kizlum

    @Zyegfryed, pas de soucis. C’est effectivement ce qui c’est passé : suite à la refonte du site, pas mal d’URL ont changé, Jacob Kaplan-Moss (que je remercie au passage pour sa réactivité) a mit a jour la base de Django Community.

blog comments powered by Disqus