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

2021-04-11 14:53:49 发布

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

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

number_of_rows = 50
query1 = '''select *
from some_db
limit %s''' % (number_of_rows)

但是,由于我在一个处理和清理数据的脚本中有很多长的查询,这使得我的脚本的可读性变差。什么是合理的方式来构造我的程序,使它既可读又进行这些查询调用?到目前为止,一种有效的方法是使用另一个python文件,我们将其称为my_query_文件.py,有点像

^{pr2}$

然后从主项目文件中导入我的“查询”文件,并调用“我的”首选“查询”。不过,有没有更好的方法可以做到这一点呢?在

3条回答
网友
1楼 ·

考虑使用现有的查询生成器(如python sql):

https://code.google.com/p/python-sql/

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

http://www.sqlalchemy.org/

网友
2楼 ·

我支持雅瑞克说的话。使用SQL炼金术,编写硬编码的SQL查询是一个非常糟糕的主意,即使它只是一个脚本。如果你有2-3个查询,它就可以工作了,但是除此之外,每次需要修改结构时,你都必须到处修改查询。在

你还说你有很长的查询,在sql炼金术中,几乎所有的东西都像一个对象一样对待,这使得查询不再那么令人头疼。 同样,通过这种方法,您可以将数据库结构与程序分离,并减少对它的依赖。在

附言:抱歉,不是真的回答,但我没有足够的代表来评论。在

网友
3楼 ·

你有没有想过使用像Jinja2这样的模板系统?我用它来存储和使用各种情况下的模板(从web开发到自动代码生成),它工作得非常好。在

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

相关问题