| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960 | import sqlite3def test_sqlite():    try:        con = sqlite3.connect("mydb.sqlite")    except sqlite3.Error as er:        print("Error connecting to database:", er)    cur = con.cursor()    sql_query = "INSERT INTO user VALUES(?, ?)"    sql_data = ("John", "MacDonald")    try:        cur.execute(sql_query, sql_data)        con.commit()    except sqlite3.Error as er:        print('SQLite error: %s' % (' '.join(er.args)))        print("Exception class is: ", er.__class__)        print('SQLite traceback: ')    finally:        con.close()class DatabaseManager:    def __init__(self, db_name):        self.db_name = db_name    def __enter__(self):        try:            self.conn = sqlite3.connect(self.db_name)        except sqlite3.Error as e:            print("Error connecting to database:", e)            return None        else:            return self.conn    def __exit__(self, exc_type, exc_value, traceback):        try:            self.conn.close()        except AttributeError:            print("Database connection not established")        except sqlite3.Error as e:            print("An error occured while closing the database connection: ", e)    def test_context():    with DatabaseManager("mydb.sqlite") as conn:        if conn:            cur = conn.cursor()            sql_query = "INSERT INTO user VALUES(?, ?)"            sql_data = ("Jogn", "MacDonald")            cur.execute(sql_query, sql_data)            conn.commit()def main():    # test_sqlite()    test_context()if __name__ == '__main__':    main()
 |