2
29 mai 2013

Je dois bien avouer, je suis un peu fainéant et surtout, à mon grand regret, je ne connais pas encore par coeur les méthodes et attributs de Django. Or, pour afficher les informations stockées dans une base de données, vous devez au préalable créer vos modèles (concept MVC). Avec Django, il existe une commande magique qui permet de faire cela automatiquement !

J'aime Django pour sa souplesse et les différents outils que ce framework possède. Au départ, je m'efforcais d'écrire chaque modèle en me reportant à l'API (Django/GeoDjango). Mais il existe une manière bien plus simple et elle tient en une ligne de commande :

$ ./manage.py inspectdb 

Si vous êtes habitué à Django la commande manage.py ne vous sera pas inconnue. C'est l'attribut inspectdb qui nous intéresse car c'est lui qui va Génèrer automatiquement nos modèles. Pour ma table Osmqualitygrid le résultat de cette commande donne par exemple :

class Osmqualitygrid(models.Model):
    id = models.IntegerField(primary_key=True)
    bbox = models.PolygonField()
    objects = models.GeoManager()
    class Meta:
        db_table = 'osmqualitygrid'

il ne vous reste plus qu'a copier cela dans la vue de votre application et le tour est joué

A propos de l'auteur: 
Arnaud Vandecasteele

Fervent défenseur de l'Open Source, Arnaud s'est spécialisé dans le développement d'application cartographiques web. OpenLayers, PostGIS ou encore Django sont autant d'outils qu'il manipule au quotidien.
S'il n'est pas en face de son ordinateur, vous le retrouverez un GPS à la main en train de cartographier pour OpenStreetMap, de faire voler son drone ou sur un tatami !

Commentaires

Attention, il ne s'agit pas des vues, mais bien des modèles qui sont générés par cette procédure d'introspection de base de données. Mais c'est effectivement extrêmement pratique.

C'est une bonne remarque. Je viens de corriger, merci.