django

Django unchained !!!

Qu’est ce que django ?

La Plateforme de développement Web pour les perfectionnistes sous pression.

Django est un framework de construction d’applications web basé sur le langage Python. Il embarque un mapper ORM et tout un framework pour gérer la partie web, à la fois coté client et coté serveur. Il est noter que la construction d’applications avec Django est particulièrement rapide et permet un démarrage de projet sur les chapeaux de roues…

Les problématiques

Actuellement en cours de réalisation sur un projet de maintenance applicative, je me retrouve confronté à plusieurs effets un peu inattendus…

Django à beau ètre un framework populaire, les applications développées avec ce framework souffrent de la multiplicité des sources d’informations. Documentation en ligne pas toujours à jour, livres et tutoriels très didactiques mais pas toujours adaptés à une reprise, support épisodique de la communauté, je me propose de vous livrer quelques éléments de recherche qui vous aideront à prendre contact en douceur.

Versions

Comme tout framework jeune, django évolue vite, très vite, il vous faudra donc un peu d’outillage pour pallier à l’effet « mais ca marchait en 1.2 !!! »

Tout d’abord, django emploie python, il vous faudra donc rapidement faire un choix sur la version de python. 2.7 ou 3.x ? Dans la pratique des choses, le développement de la branche 2.7 est arrété, ce qui en fait la version la plus stable. Ensuite, les spécifications de cette version étant bloquées, plusieurs interpréteurs sont disponibles. Choisissez d’installer l’interpréteur de référence (cPython) disponible sur le sie de Python ou celui délivré par le gestionnaire de paquets de votre OS.

Ensuite, familiarisez vous avec la dynamique des outils associés à Python : les setuptools (PIP et easy_install) mais surtout virtualenv.

Virtualenv va vous permettre de créer un « environnemnt virtualisé », c’est à dire un répertoire qui contiendra touts les pré-requis et bibliothèques avec lesquels vous travaillerez. Cet environnement peut ensuite ètre « activé » ce qui vous permet d’installer et d’exécuter tous les outils python nécessaire à votre développement à l’intérieur de cet environnement. Désactivez le, et aucune modification n’a été faite sur votre Python « système » (c-a-d l’install de python que vous avez réalisé au nivveau de votre système d’exploitation. Ainsi :

-J’installe Python

-Je télécharge setuptools et virtualenv

-Je crée un virtualenv nommé « dj12″

-Je l’active

-J’installe django 1.2

-Je désactive

-Je crée un virtualenv nommé « djlatest »

-Je l’active

-J’installe la dernière version de django (1.7.1 à la date de rédaction)

-Je désactive

Et je peux ainsi activer au choix mon environnement en django 1.2 ou en django 1.7 pour travailler sur mes projets.

Serveurs

 

Il est important de noter qu’un outil de développement web devra, tôt ou tard, fournir des livrables à déployer sur un serveur web.

La problématique à laquelle j’ai été confronté est simple : comment mettre en place un environnement de test ?

J’ai tout d’abord essayé d’exécuter le serveur de développement via la méthode « runserver » de django. Même si cette approche fonctionne, il reste de grosses problématique concernant les ressources statiques. En effet, le moteur de django réserve à celles-ci un traitement particulier, ce qui pour l’instant ne me permet pas encore de tester sur un environnement « à l’identique ». Je me suis donc orienté vers un déployement sur un serveur apache « full ».

Mais… L’application que j’ai récupérée utilisait un vieux module apache (mod_python) pour exécuter l’application. Après la traditionnelle phase de backup, et plusieurs tentatives pour réitérer cette configuration sur mon serveur de test, il est vite apparu évident que la manière « moderne » de déployer faisait appel à un module plus récent, plus agile et plus sécurisé nommé WSGI. Quelques fichiers de configuration plus tard, l’applicatif tourne bien et me permet de faire tester mon client dans des conditions satisfaisantes.

Développement

S’est ensuite posée la question de l’environnement de développement. Mes ressources de formation me suggéraient d’employer pyCharm (de jetbrains) ou WingIDE, tous deux particulièrement adaptés au Python. J’ai également installé sur ma machine PTVS (Python Tools for Visual Studio) qui s’avère un peu plus difficile à configurer, mais dont le confort (pour un utilisateur régulier de Visual Studio) semble bien meilleur.

Je n’hésiterais pas à vous tenir au courant de mes avancées en la matière.

A bientôt pour un nouveau billet technologique.

Veille active avec les oreilles

logo_carre_transparent_150height

Difficile de nos jours d’avoir du temps pour lire régulièrement des nouveautés sur notre métier. Du coup, aujourd’hui je vous propose de vous libérer les yeux avec quelques sources pour vos oreilles uniquement. Planifier vos synchros de podcasts, et à vous le bus, la voiture, ou même le podcast en codant (ca semble un peu méta, mais bon, j’assume mon geek intérieur)

De quoi aurez-vous besoin ?

  • D’une connexion
  • D’un bon niveau d’anglais (!)
  • D’un lecteur de podcasts (la plupart des lecteurs audio le permettent)
  • Éventuellement d’un mobile pour vous balader avec vos podcasts tout frais
  • … et bien entendu, de quelques adresses de podcasts

A commencer par :

Software Engineering Radio

Excellent cast pour une réflexion haut niveau sur l’industrie et l’état de l’art.

http://www.se-radio.net/

Dot Net Rocks

Un des plus anciens podcasts sur les technologies .NET, plus de 1000 épisodes.

http://www.dotnetrocks.com/

The Java Posse

La vraie actualité du monde java, les casts sont parfois un peu fouillis, mais les notes et liens fournis permettent d’avoir une vue très claire des sujets abordés.

http://javaposse.com/

Les Cast Codeurs

Un cast en français !!! surtout orienté Java et très dynamique, ces gars vont vous faire réver 😉

http://lescastcodeurs.com/

This week on Channel 9

Si vous ne connaissez pas Channel 9, il s’agit d’une webTV orientée technique et sponsorisée par Microsoft, un peu comme si Game One était produite par Nintendo, vous voyez le genre ?

http://channel9.msdn.com/shows/This+Week+On+Channel+9/

.NET Générique

  • http://thesoundof.net/
  • http://www.hanselminutes.com/
  • http://herdingcode.com/
  • http://deepfriedbytes.com/podcast/
  • http://jesseliberty.com/
  • http://msdevshow.com/

Java Générique

  • http://www.grailspodcast.com/
  • http://www.javaworld.com/podcasts/
  • http://www.informit.com/podcasts/index.aspx?st=60291
  • https://itunes.apple.com/us/podcast/debug/id578812394

Fourre tout

  • http://www.thisdeveloperslife.com/
  • http://thechangelog.com/
  • http://blog.stackoverflow.com/category/podcasts/
  • http://theshipshow.com/
  • http://nodeup.com/
  • http://devchat.tv/js-jabber/
  • http://devchat.tv/ruby-rogues/
  • http://javascriptshow.com/
  • http://phptownhall.com/
  • https://itunes.apple.com/us/podcast/the-food-fight-show/id495577922

 

Vos suggestions sont les bienvenues, évidemment.