在我的pylons应用程序中,我想在设置中添加一些数据。 (用户)
为了保护数据库中的密码,我使用salt对密码进行了哈希处理,这个盐存储在配置文件中。
如果我想从配置中获取saltkey,我会这样做(缩短示例):
from pylons import config
saltkey = config.get("saltkey")
如果此代码放在例如模型中,则返回saltkey。在用户模型中,此代码用于使用salt创建哈希。
但是,如果我想在“websetup.py”中创建此模型的实例,则配置具有不同的内容,并且无法检索saltkey(导致错误)
def setup_app(command, conf, vars):
load_environment(conf.global_conf, conf.local_conf)
Base.metadata.create_all(bind=Session.bind)
user = User('admin', 'password123', 'test@test.com')
Session.add(user)
Session.commit()
我的问题是:为什么配置内容不同?如何在没有丑陋黑客的情况下解决这个问题?
答案 0 :(得分:0)
您可以在此步骤中访问配置文件。 from pylons import config
方法最适合在WSGI请求的上下文中执行此操作。但是,您没有处理WSGI请求,因此它不可用。幸运的是,在websetup.py
的操作过程中,您可以非常轻松地访问配置。 setup_app()
函数已经使用了配置文件,Paster已经解析了它并将其转换为字典。
您可以将您的配置文件作为conf.local_conf
字典访问,这将使您想要的数据可用。
所有这些 - 你不应该将salt存储在config.ini文件that's a bad idea and you should avoid wheel-reinvention like that中。