Démonstration de l'usage de l'API Sqlite3 pour encoder des élèves.
Você não pode selecionar mais de 25 tópicos Os tópicos devem começar com uma letra ou um número, podem incluir traços ('-') e podem ter até 35 caracteres.

encodage_eleves.py 3.0 KiB

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