« Programmation Python/Gestion d'une base de données » : différence entre les versions

Contenu supprimé Contenu ajouté
DannyS712 (discussion | contributions)
m <source> -> <syntaxhighlight> (phab:T237267)
Aucun résumé des modifications
 
Ligne 37 :
Étant donnée la diversité des SGBDR existants, on pourrait craindre que chacun d'eux nécessite l'utilisation d'un langage particulier pour les requêtes qu'on lui adresse. En fait, de grands efforts ont été accomplis un peu partout pour la mise au point d'un langage commun, et il existe à présent un standard bien établi : ''[[Programmation SQL|SQL]]'' (''Structured Query Language'', ou ''langage de requêtes structuré'')<ref>Quelques variantes subsistent entre différentes implémentations du SQL, pour des requêtes très spécifiques, mais la base reste cependant la même.</ref>.
 
Vous aurez probablement l'occasion de rencontrer SQL dans d'autres domaines (bureautique, par exemple). Dans le cadre de cette introduction à l'apprentissage de la programmation avec Python, nous allons nous limiter à la présentation de deux exemples : la mise en oeuvreœuvre d'un petit SGBDR réalisé exclusivement à l'aide de Python, et l'ébauche d'un logiciel client plus ambitieux destiné à communiquer avec un serveur de bases de données MySQL.
 
Notre première réalisation utilisera un module nommé ''Gadfly''. Entièrement écrit en Python, ce module ne fait pas partie de la distribution standard et doit donc être installé séparément. Il intègre un large sous-ensemble de commandes SQL. Ses performances ne sont évidemment pas comparables à celles d'un gros SGBDR spécialisé<ref>Gadfly se révèle relativement efficace pour la gestion de bases de données de taille moyenne, en mode mono-utilisateur. Pour gérer de grosses bases de données en mode multi-utilisateur, il faut faire appel à des SGDBR plus ambitieux tels que ''[[PostgreSQL]]'', pour lesquels des modules clients Python existent aussi (''[[Pygresql]]'', par ex.).</ref>, mais elles sont tout à fait excellentes pour la gestion de bases de données modestes. Absolument portable comme Python lui-même, ''Gadfly'' fonctionnera indifféremment sous Windows , Linux ou MacOS. De même, les répertoires contenant des bases de données produites sous ''Gadfly'' pourront être utilisées sans modification depuis l'un ou l'autre de ces systèmes.
Ligne 215 :
print cur.pp()
 
print "Entrée des enregistrements, table des oeuvresœuvres musicales :"
while 1:
nom = raw_input("Nom du compositeur (<Enter> pour terminer) : ")
if nom =='':
break
tit = raw_input("Titre de l'oeuvrel’œuvre : ")
dur = raw_input("durée (minutes) : ")
int = raw_input("interprète principal : ")
Ligne 423 :
"oeuvres":[('id_oeuv', "k", "clé primaire"),
('id_comp', "i", "clé compositeur"),
('titre', 50, "titre de l'oeuvrel’œuvre"),
('duree', "i", "durée (en minutes)"),
('interpr', 30, "interprète principal")]}
Ligne 615 :
"2) Supprimer les tables de la base de données ?\n"\
"3) Entrer des compositeurs\n"\
"4) Entrer des oeuvresœuvres\n"\
"5) Lister les compositeurs\n"\
"6) Lister les oeuvresœuvres\n"\
"7) Exécuter une requête SQL quelconque\n"\
"9) terminer ? Votre choix :",
Ligne 628 :
bd.supprimerTables(Glob.dicoT)
elif ch ==3 or ch ==4:
# création d'un <enregistreur> de compositeurs ou d'oeuvresœuvres :
table ={3:'compositeurs', 4:'oeuvres'}[ch]
enreg =Enregistreur(bd, table)
Ligne 635 :
break
elif ch ==5 or ch ==6:
# listage de tous les compositeurs, ou toutes les oeuvresœuvres :
table ={5:'compositeurs', 6:'oeuvres'}[ch]
if bd.executerReq("SELECT * FROM %s" % table):