100 000 comptes Google AppEngine sont disponibles !

Google AppEngine est un nouveau webservice Google à destination des développeurs souhaitant créer leurs application en ligne en se basant sur un framework web. sous le capot c’est carrément allèchant puisque Google AppEngine utilise sur Django un framework en python que nous sommes de plus en plus nombreux à affectionner.

C’est très discrètement et sans faire de pub que Google a lancé 100 000 comptes Google AppEngine pour les plus impatients d’entre vous !

Attention, 100 000 comptes c’est pas beaucoup à l’échelle de Google, alors si vous avez envie de tester ce nouveau service : ruez vous dessus !

C’est PAR ICI

Besoin d’une petite formation sur le framework Django ?

Django web FrameworkDjango est l’un des frameworks dédiés au web qui rencontre le plus de succès en ce moment. Particulièrement adapté au développement web rapide et très propre, Django sert déjà les pages de nombreux gros portails, vous pouvez en découvrir déjà pas mal sur ce site.

Si vous aussi vous avez l’envie de découvrir ce framework ou de vous perfectionner, Emencia en collaboration avec Toonux vous propose deux formations adaptées à votre niveau et vos besoins. Vous trouverez ici le programme des formations en question.

Django sera aussi à l’honneur au PyCon, organisé par l’AFPY, qui se tiendra les 17 et 18 mai à la citée des sciences de la Villlette à Paris avec une figure francophone incontournable de Django, David Larlet, auteur de l’incontournable Biologeek, site de documentation sur Django en français. Vous trouverez le programme de ces conférences ici.

Premiers pas avec Django : un framework en Python pour développer rapidement et efficacement – Acte 1

test-ok.pngComme vous le savez sûrement WordPress c’est sympa, c’est convivial, relativement modulaire, agréable pour le gestionnaire de contenus, ça fait de belles urls bien proprettes … oui mais voilà un geek sur wordpresss, au bout d’un an, il s’emmerde … il a en a surtout raz la casquette de devoir mettre à jour 20 pluggin tous les mois. Du coup il se demande s’il ne va pas en virer ou faire un métabundle …; mais non c’est idiot, trop de temps pour un résultat sûrement pas sexy qui posera par la suite des problèmes de maintenabilité.

Ma problématique du jour est la suivante : j’ai besoin d’un truc assez passa partout qui me permettrait de faire fonctionner plusieurs petites appli très simples, blog, moteur digg like… sur des urls en sous domaine, rien de sorcier. mais là tout de suite, on voit bien que

Worpdpress + pligg face à Django tout seul qui sait tout faire, … on prend donc Django. Ruby on Rails aurait lui aussi pu convenir, mais c’est Python qui nous intéresse 😉

Ce qui m’amène au jouet du jour : Django

Django est un framework reposant sur le langage objet Python, Django est un outil à destination des développeurs.

On va commencer par faire nos premiers pas avec lui

Petite install de Django, on va utiliser la méthode svn plus à même de garantir une maintenabilité parfaite.

$ svn co http://code.djangoproject.com/svn/django/trunk/ django

En fonction des OS, des versions des OS, il va falloir localiser votre installation, sur Linux, python est souvent dans le /usr/lib; mais si ce n’est pas là pas de panique

python -c "from distutils.sysconfig import get_python_lib; print get_python_lib()"

ce qui me renvoi pour mon os :

/usr/lib/python2.5/site-packages

C’est parfait je sais où se trouve mon install de Django

$ cd /usr/lib/python2.5/site-packages && ls
Django-0.97_pre-py2.5.egg-info README django

Comme je veux avoir vite un truc en production, je suis les bons conseils distillés sur le site de Django et j’installe le mod-python,

$ sudo apt-get install libapache2-mod-python

Il faut maintenant s’assurer que les pages .py s’affichent correctement et pour ça il va déjà falloir modifier le fichier de copnf default de notre apache2

$ cd /etc/apache2/sites-available/
$ emacs default

A la 10e ligne on trouve ceci :

<Directory /var/www/>
Options Indexes FollowSymLinks MultiViews
AllowOverride AuthConfig
Order allow,deny
allow from all
# Uncomment this directive is you want to see apache2's
# default start page (in /apache2-default) when you go to /
#RedirectMatch ^/$ /apache2-default/
</Directory>

On va le transformer en ça :

<Directory /var/www/>
Options Indexes FollowSymLinks MultiViews
AllowOverride AuthConfig
Order allow,deny
allow from all
AddHandler mod_python .py
PythonHandler mod_python.publisher
PythonDebug On
# Uncomment this directive is you want to see apache2's
# default start page (in /apache2-default) when you go to /
#RedirectMatch ^/$ /apache2-default/
</Directory>

c’était histoire de déclarer ici que notre Apache est beau, que notre Apache, est puissant que notre Apache comprend maintenant Python ! … d’ailleurs pour s’en rendre compte on va tester ça en créant un petit fichier de test, intelligemment appelé test.py

$ sudo emacs /var/www/test.py

on y colle ceci :

def index(req):
return "Yeaaah my Apache knwows kungfu !!!";

on enregistre maintenant le tout, puis on redémarre apache

$ sudo /etc/init.d/apache2 restart

J’ouvre mon navigateur et et là top du top, mon Apache connait le kungfu …

test-ok1.png

On passe maintenant à la config de base du httpd.conf

$ sudo emacs httpd.conf

on va y placer ceci

<Location "/monsite/">
SetHandler python-program
PythonHandler django.core.handlers.modpython
SetEnv DJANGO_SETTINGS_MODULE monsite.settings
PythonDebug On
</Location>

Notez que le debug est sur « on » pour le moment.

On va maintenant s’installer notre petite base de données, on va ici choisir du MySQL5 qui aura aussi besoin de mysqldb

$ sudo apt-get install mysql-server python-mysqldb

C’est donc parti pour l’installation de notre Django , je me place dans le répertoire du trunk Django que j’ai svn checout à la première étape et je lance le script d’install :

$ sudo python setup.py install

Si tout c’est bien passé je dois avoir quelque choses comme ceci qui m’indique où l’egg se trouve

running install_egg_info
Writing /usr/lib/python2.5/site-packages/Django-0.97_pre.egg-info

Il ne reste plus maintenant que les confs post installation à se farcir, elles sont très bien documentées sur le site de support :