Sqlalchemy:的postgresql参数样式引擎.执行()

2024-05-20 13:36:57 发布

您现在位置:Python中文网/ 问答频道 /正文

我通过sqlalchemy连接到postgresql。当我尝试以下代码时:

e = create_engine('')
r = e.execute("select ?", 5)

它给了我:

^{pr2}$

对应于http://www.sqlalchemy.org/docs/core/connections.html?highlight=engine#sqlalchemy.engine.base.Connection.execute有不同类型的paramstyles。。。 经过更深入的研究,我发现postgresql方言的默认paramstyle是“pyformat”。在

有人能给我演示一下如何在一些例子中使用这个pyformat吗? 我只想使用占位符或命名占位符来形成sql语句。在

我试过了:

e.execute("select %s, %s;", "test", "test2")

但这也行不通。在

谢谢你

编辑: 当然,我正在传递有效的连接字符串来创建引擎方法:-)


Tags: 代码orgcorehttpdocsexecutesqlalchemypostgresql
1条回答
网友
1楼 · 发布于 2024-05-20 13:36:57

链接到的文档直接链接到pep249,它显示了不同的样式。在

关于pyformat它说:

'pyformat' Python extended format codes, e.g. '...WHERE name=%(name)s'

所以这就是你需要使用的。在

通过google搜索“DBAPI pyformat”,第二个链接是指向psycopg2 documentation的链接。在提到它使用pyformat之后,有一个“See Also”链接到a page with loads of examples。在

在您的原始链接中有如何使用它的示例:

e.execute("select %s, %s;", ("param1", "test"), ("param2", "test2"))

也可以使用以下语法:

^{pr2}$

哪个更好。在

相关问题 更多 >