我正在构建一个服务,它有几个运行的cronjobs,用Python编写。但是,这是我的第一个Python项目,所以我还是一个非常初学者。
我现在正在做的是,我在每个文件上处理数据库连接,所以基本上如果我想更改主机,我需要查看所有文件。我现在正在研究一种PHP - include()
类似于Python的方法,因此我可以包含一些常规内容而不是复制粘贴。
此外,Python文件是在cronjob中运行的,因此该方法也适用于cronjobs:)
答案 0 :(得分:3)
如果它只是单个数据库连接的几个设置,只需将其放入Python模块并将其导入所有文件即可。为什么要添加任何不需要的复杂性?
如果它更复杂,请使用ConfigParser
作为@AdamMatan建议。
# dbconfig.py
host = '127.0.0.1'
user = 'stack'
password = 'overflow'
# db.py
import dbconfig
print dbconfig.host
print dbconfig.user
print dbconfig.password
答案 1 :(得分:1)
使用外部configuration file,其中包含数据库连接(主机,名称,密码,数据库,...),并从Python脚本中读取配置文件。
这使得更改变得容易(即使对于非程序员也是如此)并且很好地符合Single Choice Principle。
示例:强>
db.cfg
[db]
host=127.0.0.1
user=stack
password=overflow
db.py
import ConfigParser
config = ConfigParser.ConfigParser()
config.readfp(open('db.cfg'))
print config.get('db', 'host')
执行结果:
127.0.0.1
答案 2 :(得分:0)
如果你需要致电__import__()
,那你就错了。
您需要到refactor您的代码,以便您不再拥有分散在整个代码库中的数据库连接例程。是的,将这些细节放在配置文件(+1 @Adam Matan)中会更好,但首先需要消除重复。从长远来看,这将为您带来痛苦的世界。