Dans l'éternelle quête d'un système simple et performant pour mettre en place un système d'édition de données spatiales via un navigateur web, de façon sécurisée et sur une base Postgres, il faut nous confronter au framework Django.
Cet article est une vulgarisation/fusion des deux tutoriels officels Django et GeoDjango. Ces derniers sont bien plus détaillés et vous les trouverez ici :
- Tutoriel officiel Django : https://docs.djangoproject.com/fr/1.9/intro/tutorial01/
- Tutoriel officiel GeoDjango : https://docs.djangoproject.com/fr/1.9/ref/contrib/gis/tutorial/
Le tuto officiel Django se base sur les toutes dernières versions des outils, et sur Linux. En fonction de sa machine locale ou des serveurs web à notre disposition, il peut y avoir des différences. La syntaxe de certaines lignes de commande Django ou Python peuvent changer, ainsi que la façon d'appeler vos apps ou vos importations.
D'autre part faire ses 1ers pas dans GeoDjango nécessite de s'être d'abord familiarisé à Django. On n'utilise pas ce module additionnel sans le framework complet.
Je vais donc tenter de clarifier tout cela, ne serait-ce qu'à mes yeux, et en allant rapidement vers les fontionnalités les plus basiques de GeoDjango. Au terme de cet article, nous aurons un système de CRUD sur de la donnée spatiale, en points, lignes et polygones, avec un fond OpenStreetMap, le tout accessible sur authentification.
Débutant complet sur Django, je liste ici mes grandes manips et étapes d'initiation, ça me servira de pense-bête, et peut-être que ça en aidera d'autres ! Un mémo liste les commandes récurrentes (Mémo Django/GeoDjango/Python). Un SCRUD spatial peut déjà être testé à cette adresse http://geodjango.hg-map.fr/admin/, un compte de test est disponible (identifiant : hgmap | mot de passe : identifiant à l'envers suivi de la somme de 100 et 23). Si le compte de test était super-user, l'interface afficherait également la gestion des utilisateurs.
Concernant l'installation des outils, si vous êtes sur Linux et que vous lisez ces lignes, c'est sans doute que vous pouvez vous en passez. Nous ne verrons les détails de l'installation que pour Windows. Le développement sera en revanche valable sur Linux et Windows (quelques lignes de commande qui diffèrent, pas plus).
Après avoir essayé de déployer un projet Django directement sur une machine Linux mutualisée de chez l'hébergeur Alwaysdata (pas facile quand on débute sur Python, et sur ce framework avec son propre serveur de développement, des librairies...), j'ai changé d'approche (mais nous reviendrons plus tard sur un déploiement en ligne chez cet hébergeur).
Tout d'abord, commençons en douceur par une installation locale sur un bon vieux Windows 7. Je ne pense pas qu'il y ait des différences notables sur les autres versions de Windows. Quant à Linux, la suite de cet article ainsi que le mémo listeront les commandes équivalentes pour une machine Debian GNU/Linux.
Django nécessite Python, installons-donc Python !