存储配置详细信息

2024-06-16 14:06:56 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一堆字符串和整数常量,我在我的应用程序的不同地方使用。 我计划把它们放在一个集中的地方,这样以后更容易更换。我可以想出以下方法:

1)将它们作为单独的变量存储在模型db.py

settings_title = "My Amazing App"
settings_ver = 2.0
settings_desc = "Moar and Moar cats"

2)将它们作为dict保存在db.py

^{pr2}$
  • 使用模型db.py是个好主意吗?我听说每个请求都会被评估。把设置放在那里会有明显的开销吗?在
  • 这两种方法在性能方面有什么不同吗?在
  • 有更好的方法吗?在

Tags: 方法字符串py模型应用程序dbsettingstitle
3条回答

例如,Django使用一个文件设置.py. 在

它不是一个模型,而是所有类型的变量的集合,string/ints/dicts/whatever,在每个需要访问它们的模块中,import settings或{}。在

因为它不是一个单一的模型,所以没有访问开销。在

你的数据库在任何情况下,模型文件都将在每个请求上执行,因此在代码中添加一些设置赋值将增加可忽略不计的开销。而不是把设置数据库,为了更好地组织,您可以考虑创建一个单独的模型文件。注意,模型文件是按字母顺序执行的,所以如果设置必须在后续的模型文件中可用,请将设置文件命名为0_设置.py以确保它在任何其他模型文件之前执行。在

如果您愿意,您可以将设置放在模块中(例如。,设置.py)在应用程序的/modules文件夹中,将settings对象导入应用程序代码中的任何位置(在这种情况下,解释器只会加载一次模块)。但是,如果需要根据传入的请求动态设置任何设置,那么最好将这些设置保存在模型文件中。在

最后,您可以考虑使用web2pyStorage对象,而不是标准字典,它类似于字典,但允许您以属性的形式访问值,如果您尝试访问不存在的键/属性,则返回None而不是KeyError:

from gluon.storage import Storage
settings = Storage()
settings.title = 'My Amazing App'

或者

^{pr2}$

注意,web2py requestresponsesession对象都是Storage类的实例。在

您可以直接将配置变量放入.py文件中,然后在模块中导入该文件,就像django使用的setting.py。如果您想在某些节基上组合变量,那么可以使用^{}来准备.cfg文件。在

相关问题 更多 >