一些库和站点(如kotti)公开了从配置文件加载的数据库会话(它使用金字塔)。
一般来说,您可以忽略 sqlalchemy 的驱动程序,但是有一些问题,例如获取随机行和使用 sqlite 的时区,这需要您对不同的引擎有特定的行为。
问题是,我看不到如何确定您在运行时使用的驱动程序。
你怎么做到这一点?
具体来说,如何从会话(不是引擎或会话工厂)中逆向工作并解决这个问题?
一些库和站点(如kotti)公开了从配置文件加载的数据库会话(它使用金字塔)。
一般来说,您可以忽略 sqlalchemy 的驱动程序,但是有一些问题,例如获取随机行和使用 sqlite 的时区,这需要您对不同的引擎有特定的行为。
问题是,我看不到如何确定您在运行时使用的驱动程序。
你怎么做到这一点?
具体来说,如何从会话(不是引擎或会话工厂)中逆向工作并解决这个问题?
如果你这样做
session.bind.dialect.name
它将返回类似sqlite
or的内容,即 URL ( )mysql
开头的部分。如果您对更多信息感兴趣,mysql://...
也可以从对象中获取大多数其他信息。dialect
您可以在任何engine
或connection
(即bind
)上找到它。