Démonstration de l'usage de l'API Sqlite3 pour encoder des élèves.1er essai
Nelze vybrat více než 25 témat Téma musí začínat písmenem nebo číslem, může obsahovat pomlčky („-“) a může být dlouhé až 35 znaků.

77 řádky
2.8 KiB

  1. import sqlite3
  2. from utils import print_table
  3. db = sqlite3.connect('ecole.sqlite3')
  4. cursor = db.cursor()
  5. cursor.execute("""CREATE TABLE IF NOT EXISTS eleves(
  6. ID_Eleve INTEGER PRIMARY KEY AUTOINCREMENT,
  7. Prenom TEXT,
  8. Nom TEXT,
  9. UNIQUE (Prenom, Nom));
  10. """)
  11. while True:
  12. choix = input("\nVeuillez choisir une action à réaliser [A]jouter, [L]ister, " \
  13. "[M]odifier, [S]upprimer, [Q]uitter : ")
  14. if choix == "":
  15. continue
  16. if choix[0] in 'lL':
  17. cursor.execute("""SELECT * FROM eleves ORDER BY ID_eleve;""")
  18. liste_eleves = cursor.fetchall()
  19. titres = ['Id', 'Prénom', 'Nom']
  20. liste_eleves.insert(0, titres)
  21. print_table(liste_eleves)
  22. if choix[0] in 'aA':
  23. prenom = input("\nVeuillez entrer un prenom : ").capitalize()
  24. nom = input("Veuillez entrer un nom : ").upper()
  25. if prenom=="" or nom=="":
  26. print('Vous devez renseigner le nom et le prénom')
  27. continue
  28. else:
  29. try:
  30. cursor.execute("""INSERT INTO eleves(prenom, nom)
  31. VALUES(?,?);""",
  32. (prenom, nom))
  33. db.commit()
  34. except sqlite3.IntegrityError:
  35. print(f"{prenom} {nom} existe déjà dans la base de données")
  36. if choix[0] in 'mM':
  37. id_eleve = input("Veuillez entrez l'identifiant de l'élève à modifier : ")
  38. cursor.execute("""SELECT prenom, nom FROM eleves WHERE ID_Eleve=?""", (id_eleve,))
  39. prenom, nom = cursor.fetchone()
  40. n_prenom = input(f"\nVeuillez entrer un prenom (actuellement {prenom}): ")
  41. n_nom = input(f"Veuillez entrer un nom (actuellement {nom}): ")
  42. if n_prenom:
  43. prenom = n_prenom
  44. if n_nom:
  45. nom = n_nom
  46. try:
  47. cursor.execute("""UPDATE eleves
  48. SET prenom=?,
  49. nom=?
  50. WHERE ID_Eleve=?;""",
  51. (prenom.capitalize(), nom.upper(), id_eleve))
  52. db.commit()
  53. except sqlite3.IntegrityError:
  54. print(f"{prenom} {nom} existe déjà dans la base de données")
  55. if choix[0] in 'sS':
  56. id_eleve = input("Veuillez entrez l'identifiant de l'élève à supprimer : ")
  57. cursor.execute("""SELECT prenom, nom FROM eleves WHERE ID_Eleve=?""", (id_eleve,))
  58. prenom, nom = cursor.fetchone()
  59. confirmation = input(f"Confirmez-vous la suppression de {prenom} {nom} ? [O/n] : ")
  60. if not confirmation=='n':
  61. cursor.execute("""DELETE FROM eleves WHERE ID_Eleve=?""",(id_eleve,))
  62. db.commit()
  63. if choix[0] in 'qQ':
  64. break
  65. print('Bye !')
  66. db.close()