首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >包含一个.py文件,仍然不会破坏cronjob (Python,初学者)?

包含一个.py文件,仍然不会破坏cronjob (Python,初学者)?
EN

Stack Overflow用户
提问于 2011-08-15 17:20:32
回答 3查看 221关注 0票数 3

我正在构建一个服务,其中运行着一些用Python编写的cronjob。然而,这是我的第一个Python项目,所以我还是个初学者。

我现在所做的是,我在每个文件上处理我的数据库连接,所以基本上,如果我想要更改主机,我需要检查所有文件。我现在正在研究一个类似PHP-include()的Python方法,这样我就可以包含一些通用的东西,而不是复制-粘贴。

此外,Python-files是在cronjob中运行的,因此该方法也应该适用于cronjob :)

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-08-15 17:38:35

如果它真的只是一个数据库连接的几个设置,只需将其放入Python模块并导入到所有文件中即可。为什么要添加不需要的复杂性呢?

如果更复杂,可以按照@AdamMatan的建议使用ConfigParser

代码语言:javascript
复制
# dbconfig.py
host = '127.0.0.1'
user = 'stack'
password = 'overflow'

# db.py

import dbconfig
print dbconfig.host
print dbconfig.user
print dbconfig.password
票数 3
EN

Stack Overflow用户

发布于 2011-08-15 17:26:02

对数据库连接使用外部configuration file (主机、名称、密码、数据库...)并从Python脚本中读取配置文件。

这使得更改变得很容易(即使对于非程序员来说也是如此),并且很好地符合Single Choice Principle

示例:

db.cfg

代码语言:javascript
复制
[db]
host=127.0.0.1
user=stack
password=overflow

db.py

代码语言:javascript
复制
import ConfigParser

config = ConfigParser.ConfigParser()
config.readfp(open('db.cfg'))

print config.get('db', 'host')

执行结果:

代码语言:javascript
复制
127.0.0.1
票数 1
EN

Stack Overflow用户

发布于 2011-08-15 18:06:38

如果你需要调用__import__(),那么你就做错了。

您需要来您的代码,这样您就不再有分散在代码库中的数据库连接例程。是的,将这些细节保存在一个配置文件(+1 @Adam Matan)中会更好,但首先需要消除重复。从长远来看,这将为你节省一大堆痛苦。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7063368

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档