Exemple d'application de base de données
Exemple : Modèle
1
CREATE TABLE philosopher (
2
surname TEXT PRIMARY KEY,
3
givenname TEXT,
4
century INTEGER);
Exemple : Vue
1
CREATE VIEW v_philosopher (name, century) AS
2
SELECT
3
COALESCE(givenname,'') ||
4
CASE WHEN givenname IS NOT NULL THEN ' ' ELSE '' END
5
|| surname,
6
century || 'e'
7
FROM philosopher;
Exemple : Contrôle (menu.py)
1
#!/usr/bin/python3
2
3
import psycopg2
4
import forms
5
import reports
6
7
HOST = "localhost"
8
USER = "me"
9
PASSWORD = "secret"
10
DATABASE = "mydb"
11
12
conn = psycopg2.connect("host=%s dbname=%s user=%s password=%s" % (HOST, DATABASE, USER, PASSWORD))
13
14
choice = '1'
15
while choice == '1' or choice == '2':
16
print ("Pour ajouter un philosophe à la base, entrez 1")
17
print ("Pour voir la liste des philosophes, entrez 2")
18
print ("Pour sortir, entrez autre chose")
19
choice = input()
20
if choice == '1':
21
forms.addPhilo(conn)
22
if choice == '2':
23
reports.printPhilo(conn)
24
print(choice)
25
26
conn.close()

Exemple : Formulaire
1
#!/usr/bin/python3
2
3
def quote(s):
4
if s:
5
return '\'%s\'' % s
6
else:
7
return 'NULL'
8
9
def addPhilo(conn):
10
surname = quote(input("Surname : "))
11
givenname = quote(input("Given name : "))
12
century = int(input("Century : "))
13
# Connect, execute SQL, close
14
cur = conn.cursor()
15
sql = "INSERT INTO philosopher VALUES (%s, %s, %i)" % (surname, givenname, century)
16
cur.execute(sql)
17
conn.commit()

Exemple : État (report.py)
1
#!/usr/bin/python3
2
3
def printPhilo(conn):
4
# Connect and retrieve data
5
cur = conn.cursor()
6
sql = "SELECT name, century FROM v_philosopher"
7
cur.execute(sql)
8
# Fetch data line by line
9
raw = cur.fetchone()
10
while raw:
11
print ("- %s (%s)" % (raw[0], raw[1]))
12
raw = cur.fetchone()
