Démonstration de l'usage de l'API Sqlite3 pour encoder des élèves.1er essai
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

encodage_eleves.py 3.0 KiB

3 年之前
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()