PostgreSql et Python ******************** Il existe plusieurs modules qui permettent à python de se connecter à une base de donnée PostgreSql. Un simple tour sur google permet de le voir. PyGreSQL est certainement le plus célèbre mais je préfère utiliser le module psycopg car: * il existe pour python 2.4 à 3.2 (donc malgré le passage à python 3 le module reste le même) * il est compatible postgresql 7.3 à 9.1 * il respecte les API database * il est simple à installer * ... `http://initd.org/psycopg/features/ `_ Installation ============ pour l'installer il suffit d'utiliser easy install de Pypi :: easy_install psycopg2 ou après avoir télécharger le module un simple :: python setup.py install Exemple ======= les paramètres de connection sont: * dbname – the database name (only in dsn string) * database – the database name (only as keyword argument) * user – user name used to authenticate * password – password used to authenticate * host – database host address (defaults to UNIX socket if not provided) * port – connection port number (defaults to 5432 if not provided) .. code-block:: python import psycopg2 conn = psycopg2.connect("dbname=test user=postgres") cur = conn.cursor() cur.execute("CREATE TABLE test (id serial PRIMARY KEY, num integer, data varchar);") cur.execute("INSERT INTO test (num, data) VALUES (%s, %s)", (100, "abc'def")) cur.execute("SELECT * FROM test;") cur.fetchone() conn.commit() cur.close() conn.close() il est possible d'utiliser des dictionnaire comme entrée de requête .. code-block:: python cur.execute( """INSERT INTO some_table (an_int, a_date, another_date, a_string) VALUES (%(int)s, %(date)s, %(date)s, %(str)s);""", {'int': 10, 'str': "O'Reilly", 'date': datetime.date(2005, 11, 18)})