2024-09-26 18:02:35 发布
网友
我有一堆字符串和整数常量,我在我的应用程序的不同地方使用。 我计划把它们放在一个集中的地方,这样以后更容易更换。我可以想出以下方法:
1)将它们作为单独的变量存储在模型db.py
db.py
settings_title = "My Amazing App" settings_ver = 2.0 settings_desc = "Moar and Moar cats"
2)将它们作为dict保存在db.py
例如,Django使用一个文件设置.py. 在
它不是一个模型,而是所有类型的变量的集合,string/ints/dicts/whatever,在每个需要访问它们的模块中,import settings或{}。在
import settings
因为它不是一个单一的模型,所以没有访问开销。在
你的数据库在任何情况下,模型文件都将在每个请求上执行,因此在代码中添加一些设置赋值将增加可忽略不计的开销。而不是把设置数据库,为了更好地组织,您可以考虑创建一个单独的模型文件。注意,模型文件是按字母顺序执行的,所以如果设置必须在后续的模型文件中可用,请将设置文件命名为0_设置.py以确保它在任何其他模型文件之前执行。在
如果您愿意,您可以将设置放在模块中(例如。,设置.py)在应用程序的/modules文件夹中,将settings对象导入应用程序代码中的任何位置(在这种情况下,解释器只会加载一次模块)。但是,如果需要根据传入的请求动态设置任何设置,那么最好将这些设置保存在模型文件中。在
最后,您可以考虑使用web2pyStorage对象,而不是标准字典,它类似于字典,但允许您以属性的形式访问值,如果您尝试访问不存在的键/属性,则返回None而不是KeyError:
Storage
from gluon.storage import Storage settings = Storage() settings.title = 'My Amazing App'
或者
注意,web2py request、response和session对象都是Storage类的实例。在
request
response
session
您可以直接将配置变量放入.py文件中,然后在模块中导入该文件,就像django使用的setting.py。如果您想在某些节基上组合变量,那么可以使用^{}来准备.cfg文件。在
.py
setting.py
.cfg
例如,Django使用一个文件设置.py. 在
它不是一个模型,而是所有类型的变量的集合,string/ints/dicts/whatever,在每个需要访问它们的模块中,}。在
import settings
或{因为它不是一个单一的模型,所以没有访问开销。在
你的数据库在任何情况下,模型文件都将在每个请求上执行,因此在代码中添加一些设置赋值将增加可忽略不计的开销。而不是把设置数据库,为了更好地组织,您可以考虑创建一个单独的模型文件。注意,模型文件是按字母顺序执行的,所以如果设置必须在后续的模型文件中可用,请将设置文件命名为0_设置.py以确保它在任何其他模型文件之前执行。在
如果您愿意,您可以将设置放在模块中(例如。,设置.py)在应用程序的/modules文件夹中,将settings对象导入应用程序代码中的任何位置(在这种情况下,解释器只会加载一次模块)。但是,如果需要根据传入的请求动态设置任何设置,那么最好将这些设置保存在模型文件中。在
最后,您可以考虑使用web2py
Storage
对象,而不是标准字典,它类似于字典,但允许您以属性的形式访问值,如果您尝试访问不存在的键/属性,则返回None而不是KeyError:或者
^{pr2}$注意,web2py
request
、response
和session
对象都是Storage
类的实例。在您可以直接将配置变量放入} 来准备
.py
文件中,然后在模块中导入该文件,就像django使用的setting.py
。如果您想在某些节基上组合变量,那么可以使用^{.cfg
文件。在相关问题 更多 >
编程相关推荐