是否可以根据 development.ini 或 production.ini 中的特定用户定义设置来更改视图/模板的内容。
例如,我正在开发一个列出班级所有学生的金字塔网络应用程序。后端数据库只有一张表 - 'student'。现在我开发了一个可选脚本,该脚本还将一个表“老师”添加到数据库中。理想情况下,网络应用程序应该能够在这两种情况下运行。如果教师表丢失,它不会查询它并简单地打印学生详细信息。如果教师表存在,它将打印教师姓名和学生姓名。
在我看来,这可以通过以下方式之一完成 -
- 为教师+学生和仅限学生的页面保留单独的路线 (URL)。问题是,当您只有学生信息时,您无法阻止人们实际致电前者。这将导致不必要的错误页面
- 在 .ini 文件中使用设置 teacher_enabled=true/false。可以通过 settings['teacher_enabled'] 在 __init __.py 文件中访问该设置。只配置一条路线(比如'home','/'),但根据seeting 变量是真/假,将其映射到不同的视图。这将不允许使用 @view_config 装饰器,并且两种情况的模板必须分开
- 再次使用设置变量,以某种方式将其传递给视图。仅在视图中进行相关查询。例如 - 如果teacher_enabled 为True,则查询教师表,否则仅查询学生表。将此变量也传递给模板,然后决定是否显示一些详细信息(例如教师姓名)。
所以我的问题是我应该使用哪些方法?如果要将设置变量传递给视图,该怎么做?有没有处理这个问题的标准方法?