我有一堆遵循这种模式的python方法:

def delete_session(guid):
    conn = get_conn()
    cur = conn.cursor()

    cur.execute("delete from sessions where guid=%s", guid)

    conn.commit()
    conn.close()

有没有更pythonic的方式来执行原始sql。每个方法开头和结尾的 2 行开始困扰我。

我不是在寻找 orm,我想坚持使用原始 sql。

最佳答案

您可以编写上下文管理器并使用 with 语句。例如,请参阅此博客文章:

http://jessenoller.com/2009/02/03/get-with-the-program-as-contextmanager-completely-different/

此外,python 文档有一个非常符合您需求的示例。请参阅本页第 8.1 节,特别是开头的代码段:

db_connection = DatabaseConnection()
with db_connection as cursor:
    cursor.execute('insert into ...')
    cursor.execute('delete from ...')
    # ... more operations ...
  • https://docs.python.org/2.5/whatsnew/pep-343.html
  • 关于python - 寻找一种更pythonic的方式来访问数据库,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1107297/

    10-09 21:57
    查看更多