Python PyMySQL查询字符串生成器

Python PyMySQL查询字符串生成器,python,mysql,pymysql,Python,Mysql,Pymysql,因此,我使用PyMySQL包查询远程数据库,我发现使用.execute()方法非常烦人 我正在寻找一个能够以更友好的方式构造原始MySQL查询的包装器。有人知道有这样的软件包吗 我尝试过使用pypika,但是它正在生成的查询('从“用户”中选择“id”,“username”)抛出了一个错误 pymysql.err.ProgrammingError: (1064, 'You have an error in your SQL syntax; check the manual that corres

因此,我使用PyMySQL包查询远程数据库,我发现使用.execute()方法非常烦人

我正在寻找一个能够以更友好的方式构造原始MySQL查询的包装器。有人知道有这样的软件包吗

我尝试过使用pypika,但是它正在生成的查询('从“用户”中选择“id”,“username”)抛出了一个错误

pymysql.err.ProgrammingError: (1064, 'You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near \'"users"\' at line 1')

编辑:这是一个远程数据库,在结构方面我无法控制,而且结构可能会改变,所以我认为我不能使用SQLAlchemy

编辑2:这是我在上面遇到错误时使用的代码

from pypika import Query, Table, Field
import pymysql
users = Table('users')
q = Query.from_(users).select(users.id, users.username)
db = pymysql.connect(host=host,
                                  port=3306,
                                  user=user,
                                  passwd=password,
                                  db=db,
                                  cursorclass=pymysql.cursors.DictCursor)
db.execute(str(q))

您可以使用
peewee
一个简单的小型ORM。

它似乎正在使用双引号作为标识符分隔符生成查询

但是MySQL使用倒勾作为默认标识符分隔符,因此查询应该如下所示:

SELECT `id`,`username` FROM `users`
您可以将MySQL配置为使用双引号,这是符合ANSI SQL标准的正确标识符分隔符。为此,您必须更改
sql\u模式
以包括模式
ANSI
ANSI\u引号

请阅读有关sql_模式行为的完整文档,以及有关标识符分隔符的文档

我搜索了pypika网站,文档非常稀少。但是显然有一个用于
MySQLQuery
的类,它将自己的QUOTE_CHAR设置为`这正是我所期望的


您是否正在使用MySQL的适当查询生成器?

您能与我们分享您的代码吗?@GiovaniSalazar补充道!谢谢我开始用
MySQLQuery
代替
Query
来构建我的查询,一切都正常!你关于反勾号和引号的说法是正确的,所以谢谢你为我澄清:)