Python 存储配置详细信息
我有一堆字符串和整数常量,我在我的应用程序中的不同位置使用它们。 我计划将它们放在一个集中的位置,以便将来更容易更改它们。我可以想到以下方法: 1) 将它们作为单个变量存储在模型Python 存储配置详细信息,python,web2py,Python,Web2py,我有一堆字符串和整数常量,我在我的应用程序中的不同位置使用它们。 我计划将它们放在一个集中的位置,以便将来更容易更改它们。我可以想到以下方法: 1) 将它们作为单个变量存储在模型db.py settings_title = "My Amazing App" settings_ver = 2.0 settings_desc = "Moar and Moar cats" settings = { "title": "My Amazing App", "ver" = 2.0, "de
db.py
settings_title = "My Amazing App"
settings_ver = 2.0
settings_desc = "Moar and Moar cats"
settings = { "title": "My Amazing App",
"ver" = 2.0,
"desc" = "Moar and Moar cats"
}
2) 将它们作为dict存储在db.py
settings_title = "My Amazing App"
settings_ver = 2.0
settings_desc = "Moar and Moar cats"
settings = { "title": "My Amazing App",
"ver" = 2.0,
"desc" = "Moar and Moar cats"
}
- 使用模型
好吗?我听说每个请求都会进行评估。将设置放在那里会有明显的开销吗db.py
- 这两种方法在性能方面有什么区别吗李>
- 有更好的方法吗
例如,Django使用文件settings.py 它不是一个模型,而是所有类型的变量的集合,字符串/整数/dicts/任何类型,您可以在每个需要访问设置的模块中
导入设置
或从设置导入*
因为它不是一个单一的模型,所以在访问上没有开销。您可以直接将配置变量放入
.py
文件中,并通过导入在模块中使用该文件,就像django使用的setting.py
一样。如果要在某些节基础上组合变量,则可以使用它来准备.cfg
文件 您的db.py模型文件在任何情况下都会在每个请求上执行,因此向代码中添加一些设置分配将增加可忽略不计的开销。您可以考虑创建一个单独的模型文件,而不是将设置置于D.Py中,以获得更好的组织。请注意,模型文件是按字母顺序执行的,因此,如果必须在后续模型文件中提供设置,请将设置文件命名为0_settings.py,以确保它在任何其他模型文件之前执行
如果愿意,您可以将设置放在应用程序的/modules文件夹中的模块(例如settings.py)中,并将设置对象导入应用程序代码中的任何需要的位置(在这种情况下,解释器只会加载一次模块)。但是,如果需要根据传入的请求动态设置任何设置,则最好将这些设置保留在模型文件中
最后,您可以考虑使用Web2Py<代码>存储> /Cord>对象,它像一个字典,但允许您访问值作为属性,如果您试图访问不存在的键/属性,则返回一个错误,而不是一个键值错误:
from gluon.storage import Storage
settings = Storage()
settings.title = 'My Amazing App'
或
注意,web2py请求
、响应
和会话
对象都是存储
类的实例