使用MySQL查询的Python项目的项目结构?

使用MySQL查询的Python项目的项目结构?,python,mysql,Python,Mysql,我有一个Python项目,它可以生成各种MySQL查询,这些查询会获取一些变量并将它们插入查询本身。例如: number_of_rows = 50 query1 = '''select * from some_db limit %s''' % (number_of_rows) 然而,由于我有很多长查询,在一个操纵和清理数据的脚本中,这使得我的脚本可读性降低。什么是合理的方法来构造我的程序,使其既可读又能进行这些查询调用?到目前为止,一种行之有效的方法是创建另一个python文件,我们称之为my

我有一个Python项目,它可以生成各种MySQL查询,这些查询会获取一些变量并将它们插入查询本身。例如:

number_of_rows = 50
query1 = '''select *
from some_db
limit %s''' % (number_of_rows)
然而,由于我有很多长查询,在一个操纵和清理数据的脚本中,这使得我的脚本可读性降低。什么是合理的方法来构造我的程序,使其既可读又能进行这些查询调用?到目前为止,一种行之有效的方法是创建另一个python文件,我们称之为my_query_file.py,其中包含以下内容:

def my_first_query(number_of_rows):
    query1 = '''select *
    from some_db
    limit %s''' % (number_of_rows)
    return query

然后从我的主项目文件中导入我的\u query\u文件,并首先调用我的\u query。但是,有没有更好的方法来实现这一点?

您是否考虑过使用像Jinja2这样的模板系统?我用它来存储和使用各种情况下的模板(从web开发到自动代码生成),效果非常好


您可以将SQL查询保存在模板文件中,并根据需要加载和填充它们。

考虑使用现有的查询生成器,如python SQL:

或者,如果应用程序的复杂性证明您可以尝试全面的ORM,如SQL Alchemy:


我想知道为什么我会被否决。他要求的是一种单独存储SQL语句的方法,而不是一个成熟的ORM。这也是一个很好的建议,可惜我不能将两个答案标记为正确!