如何使用 SQLAlchemy 在运行时执行用户定义的 SQL 查询?
我有一个用例实现,我试图确定解决方案,实现如下:
- 用户定义 SQL 服务器连接参数,如 DATABASE_TYPE(如 MySQL、pgsql、sqlite 或 SQLAlchemy 支持的任何数据库)、HOST、PORT、 SCHEMA_NAME、USER_NAME 和 PASSWORD
- 用户然后执行测试连接以验证提供的连接参数,并提供成功和失败反馈。
- 成功时,用户将键入sql 查询(以下 SQLAlchemy 的 SQL 表达式语言更多详细信息此处)需要被处决。
如果您注意到上面 SQLAlchemy 工作的所有参数都是用户在运行时定义的,我正在尝试在 python 中实现该函数,该函数使用上述连接参数和 sql 查询,在成功连接时执行查询并返回查询结果。对此的任何指导或帮助都会很棒。
谢谢
I have a use case implementation for which I am trying to identify the solution, the implementation is as follows :
- User defines the SQL server connection parameters like DATABASE_TYPE ( like MySQL, pgsql, sqlite or any db supported by SQLAlchemy), HOST, PORT, SCHEMA_NAME, USER_NAME and PASSWORD
- User then does the TEST CONNECTION to validate the connection parameters provided, and provides SUCCESS and FAILURE feedback
- On SUCCESS, user will type in the sql query ( following SQLAlchemy's SQL Expression Language more details here ) the which needs to be executed.
If you notice above all the parameters for SQLAlchemy to work are user defined at run time, I am trying to implement the function in python which consumes the above connection parameters and sql query, executes the query on successful connection and returns the query result. Any point of direction or help on this would be great.
Thanks
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
我有这样的东西作为一个更大项目的一部分,到目前为止仅适用于 sqlite 和 postgres,但这可以概括。
首先,如果您希望用户知道 DATABASE_TYPE(例如 MySQL、pgsql、sqlite 或 SQLAlchemy 支持的任何数据库)、HOST、PORT、SCHEMA_NAME、USER_NAME 和 PASSWORD,您可以只询问 DB URL,以使您的生活更轻松。
之后,您可以通过以下方式测试连接:
可以使用 text() 构造执行 Cusom sql 查询,如下所示 此处。
I'm having something like this as part of a larger project, so far only for sqlite and postgres but this can be generalized.
For start if you expect the user to know DATABASE_TYPE ( like MySQL, pgsql, sqlite or any db supported by SQLAlchemy), HOST, PORT, SCHEMA_NAME, USER_NAME and PASSWORD you could just ask for the DB URL to make your life a little easier.
After that you can test the connection by:
Cusom sql queries can be executed using the text() construct as shown here.