Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/329.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/.htaccess/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 存储配置详细信息_Python_Web2py - Fatal编程技术网

Python 存储配置详细信息

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

我有一堆字符串和整数常量,我在我的应用程序中的不同位置使用它们。 我计划将它们放在一个集中的位置,以便将来更容易更改它们。我可以想到以下方法:

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,
    "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
    请求
    响应
    会话
    对象都是
    存储
    类的实例