如果是敏感数据,你不应该将它存储在源代码,因为它将被检入源代码控制。错误的人(在你的组织内部或外部)可能会在那里找到它。另外,您的开发环境可能会使用生产环境中的不同配置值。如果这些值存储在代码中,那么您将不得不在开发和生产中运行不同的代码,这是一种混乱和糟糕的做法。
在我的项目,我把配置数据在数据存储中使用这个类:
from google.appengine.ext import ndb
class Settings(ndb.Model):
name = ndb.StringProperty()
value = ndb.StringProperty()
@staticmethod
def get(name):
NOT_SET_VALUE = "NOT SET"
retval = Settings.query(Settings.name == name).get()
if not retval:
retval = Settings()
retval.name = name
retval.value = NOT_SET_VALUE
retval.put()
if retval.value == NOT_SET_VALUE:
raise Exception(('Setting %s not found in the database. A placeholder ' +
'record has been created. Go to the Developers Console for your app ' +
'in App Engine, look up the Settings record with name=%s and enter ' +
'its value in that record\'s value field.') % (name, name))
return retval.value
你的应用程序将这样做是为了得到一个值:
DOMAIN = Settings.get('DOMAIN')
如果对于一个值键入数据存储区中,您将获得它。如果没有,则会创建占位符记录并引发异常。该例外会提醒您转到Developers Console并更新占位符记录。
我发现这需要猜测出设置配置值。如果您不确定要设置什么配置值,只需运行代码,它会告诉您!
+1正是我在找的:) – 2011-04-01 19:54:34