Country Python II
Question
Améliorer le programme Python ci-après :
Intégrer une gestion d'exception pour la phase de connexion
Utiliser fetchall à la place de fetchone
Afficher
- Île-de-France (d=999)
à la place deÎle-de-France 999
1
#!/usr/bin/python3
2
3
import psycopg2
4
5
conn = psycopg2.connect("dbname='mydb' user='me' host='localhost' password='secret'")
6
7
sql = "SELECT name, population/area AS density FROM region ORDER BY density DESC";
8
9
resultat = conn.cursor()
10
resultat.execute(sql)
11
12
ligne = resultat.fetchone()
13
while ligne:
14
name = ligne[0]
15
density = ligne[1]
16
print(name, density)
17
ligne = resultat.fetchone()
Solution
1
#!/usr/bin/python3
2
3
import psycopg2
4
5
try:
6
conn = psycopg2.connect("dbname='mydb' user='me' host='localhost' password='secret'")
7
except psycopg2.OperationalError as e:
8
print ("I am unable to connect to the database")
9
raise(e)
10
11
sql = "SELECT name, population/area AS density FROM region ORDER BY density DESC";
12
13
cur = conn.cursor()
14
cur.execute(sql)
15
res = cur.fetchall()
16
for raw in res:
17
name = raw[0]
18
density = raw[1]
19
print ("- %s (d=%i)" % (name, density))