doc

IMAC School, it's cool ~~

Django et les bases de données

, , , , , , , ,

Vous avez installé Python et Django sur votre machine, mais il vous manque l'accès à votre base de données. Dans cet article, je vais vous expliquer comment faire pour que votre site communique avec une base de données MySQL et PostgreSQL. Je présenterai aussi une autre alternative avec SQLite.


MySQL
Sachez que si vous avez un serveur MySQL en local, vous pouvez l'exploiter pour vos applications écrites avec Django. Pour ce faire, il faut suffit d'éditer le fichier settings.py qui se trouve à la racine de votre projet:

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'test_db',               # Nom de la base de données
        'USER': 'user',                  # Votre identifiant
        'PASSWORD': '4!lM0nP@a$s2',      # Votre mot de passe
        'HOST': 'localhost',             # Nom du serveur
        'PORT': '3306',                  # '3306' est le port par défaut de MySQL. Vous n'êtes pas obligé de
                                         # le renseigner. Par contre, modifiez-le si besoin !
    }
}


Dans l'invite de commandes, tapez:

c:\Users\alexandre\monsite> manage.py syncdb

Vous remarquerez qu'il y a des erreurs. C'est normal. Python ne peut pas communiquer avec le serveur MySQL. Il faudrait installer un module qui sert d'interface entre ces deux derniers.

Pour Windows, ce module est récupérable ici : http://www.codegood.com/download/10/. Attention, il ne fonctionne qu'avec Python 2.7 32bit. Mais si vous aviez suivi mon article précédent, vous ne devriez avoir aucun problème de compatibilité. whistle

Pour MacOS, récupérez les sources du module ici : http://sourceforge.net/projects/mysql-python/. Et lisez le README qui se trouve dans l'archive. N'ayant pas de MacOS sous la main, je n'ai pas pu tester.

Retestez enfin la commande pour synchroniser votre site avec la base de données avec "manage.py syncdb". Admirez smile


PostgreSQL

La manipulation est relativement semblable qu'avec MySQL. Il faut donc installer le module psycopg disponible ici : http://stickpeople.com/projects/python/win-psycopg/. Encore une fois, c'est un module pré-compilé pour Windows. Optez pour la version de Python 2.7 32 bits.

Voici le fichier settings.py modifié :

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.postgresql_psycopg2',
        'NAME': 'test_db',               # Nom de la base de données
        'USER': 'user',                  # Votre identifiant
        'PASSWORD': '4!lM0nP@a$s2',      # Votre mot de passe
        'HOST': 'localhost',             # Nom du serveur
        'PORT': '',                      # Si vide, ce sera le port par défaut de PostgreSQL qui sera utilisé
    }
}



SQLite

Depuis Python 2.4, le module SQLite 3 y est intégré. Il permet d'utiliser des bases de données stockées directement dans des fichiers. Personnellement, si vous travaillez en local, je vous conseille ce format de données. Vous n'aurez pas besoin de configurer un serveur de bases de données. Tout se trouvera dans un seul fichier ! Windows, MacOS, Linux ? SQLite fonctionnera de la même manière. Il ne devrait pas avoir de problème de compatibilité !

La configuration du settings.py est encore plus rapide que pour les deux types de serveur vu précédemment :

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.sqlite3',
        'NAME': 'db/mabase.sqlite',               # Chemin vers votre fichier SQLite
    }
}

Pensez à créer le répertoire à l'avance ('db' dans mon exemple) avant de faire 'manage.py syncdb', sinon, vous aurez droit à une erreur.


Pour visualiser votre base MySQL, vous avez PHPMyAdmin. Pour PostgreSQL, vous avez PGMyAdmin. Mais pour SQLite ? Pas de panique ! Vous êtes un développeur Web ? Vous utilisez le navigateur Firefox ? Très bien ! Vous pouvez alors installer l'extension SQLite Manager disponible ici : https://addons.mozilla.org/fr/firefox/addon/5817/

Cette extention permet de créer vos tables, d'ajouter des données, de les modifier, d'en supprimer... bref, vous pouvez (presque) tout faire comme avec votre base MySQL et PHPMyAdmin !


Encore une fois, n'hésitez pas à me faire une remarque s'il y a des erreurs ou si vous voulez partager vos astuces. Merci !

Installer Django sous Windows

Comments

Unregistered user Monday, September 26, 2011 9:19:58 PM

vieurou writes: Merci, sympa la page

Write a comment

New comments have been disabled for this post.