context_2.py 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. import sqlite3
  2. def test_sqlite():
  3. try:
  4. con = sqlite3.connect("mydb.sqlite")
  5. except sqlite3.Error as er:
  6. print("Error connecting to database:", er)
  7. cur = con.cursor()
  8. sql_query = "INSERT INTO user VALUES(?, ?)"
  9. sql_data = ("John", "MacDonald")
  10. try:
  11. cur.execute(sql_query, sql_data)
  12. con.commit()
  13. except sqlite3.Error as er:
  14. print('SQLite error: %s' % (' '.join(er.args)))
  15. print("Exception class is: ", er.__class__)
  16. print('SQLite traceback: ')
  17. finally:
  18. con.close()
  19. class DatabaseManager:
  20. def __init__(self, db_name):
  21. self.db_name = db_name
  22. def __enter__(self):
  23. try:
  24. self.conn = sqlite3.connect(self.db_name)
  25. except sqlite3.Error as e:
  26. print("Error connecting to database:", e)
  27. return None
  28. else:
  29. return self.conn
  30. def __exit__(self, exc_type, exc_value, traceback):
  31. try:
  32. self.conn.close()
  33. except AttributeError:
  34. print("Database connection not established")
  35. except sqlite3.Error as e:
  36. print("An error occured while closing the database connection: ", e)
  37. def test_context():
  38. with DatabaseManager("mydb.sqlite") as conn:
  39. if conn:
  40. cur = conn.cursor()
  41. sql_query = "INSERT INTO user VALUES(?, ?)"
  42. sql_data = ("Jogn", "MacDonald")
  43. cur.execute(sql_query, sql_data)
  44. conn.commit()
  45. def main():
  46. # test_sqlite()
  47. test_context()
  48. if __name__ == '__main__':
  49. main()