我正在构建一个服务,其中运行着一些用Python编写的cronjob。然而,这是我的第一个Python项目,所以我还是个初学者。
我现在所做的是,我在每个文件上处理我的数据库连接,所以基本上,如果我想要更改主机,我需要检查所有文件。我现在正在研究一个类似PHP-include()的Python方法,这样我就可以包含一些通用的东西,而不是复制-粘贴。
此外,Python-files是在cronjob中运行的,因此该方法也应该适用于cronjob :)
发布于 2011-08-15 17:38:35
如果它真的只是一个数据库连接的几个设置,只需将其放入Python模块并导入到所有文件中即可。为什么要添加不需要的复杂性呢?
如果更复杂,可以按照@AdamMatan的建议使用ConfigParser。
# dbconfig.py
host = '127.0.0.1'
user = 'stack'
password = 'overflow'
# db.py
import dbconfig
print dbconfig.host
print dbconfig.user
print dbconfig.password发布于 2011-08-15 17:26:02
对数据库连接使用外部configuration file (主机、名称、密码、数据库...)并从Python脚本中读取配置文件。
这使得更改变得很容易(即使对于非程序员来说也是如此),并且很好地符合Single Choice Principle。
示例:
db.cfg
[db]
host=127.0.0.1
user=stack
password=overflowdb.py
import ConfigParser
config = ConfigParser.ConfigParser()
config.readfp(open('db.cfg'))
print config.get('db', 'host')执行结果:
127.0.0.1发布于 2011-08-15 18:06:38
如果你需要调用__import__(),那么你就做错了。
您需要来您的代码,这样您就不再有分散在代码库中的数据库连接例程。是的,将这些细节保存在一个配置文件(+1 @Adam Matan)中会更好,但首先需要消除重复。从长远来看,这将为你节省一大堆痛苦。
https://stackoverflow.com/questions/7063368
复制相似问题