I have a bunch of python methods that follow this pattern:
def delete_session(guid):
conn = get_conn()
cur = conn.cursor()
cur.execute("delete from sessions where guid=%s", guid)
conn.commit()
conn.close()
Is there a more pythonic way to execute raw sql. The 2 lines at the beginning and end of every method are starting to bother me.
I’m not looking for an orm, I want to stick with raw sql.
You could write a context manager and use the with statement. For example, see this blog post (archived)
Also the python documentation has a sample that pretty much matches your needs. See section 8.1 on this page, in particular the snippet that begins: