Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/templates/2.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 tornado,条件模板扩展_Python_Templates_Tornado - Fatal编程技术网

Python tornado,条件模板扩展

Python tornado,条件模板扩展,python,templates,tornado,Python,Templates,Tornado,我正在使用TornadowWeb构建一个web服务。我有两个不同的模板,其中包含htmlhead、导航栏和该服务对所有页面服务器通用的所有UI。第一个base.html包含仅向经过身份验证的用户显示的导航栏项目和其他html元素。第二个base\u anon.html更轻,包含一些匿名用户可以使用的项目 现在我正在创建第三个模板,它将包含页面的实际内容。我希望此模板扩展base\u anon.html或base.html,具体取决于用户是否经过身份验证。如果用户未经过身份验证,变量user将无效

我正在使用TornadowWeb构建一个web服务。我有两个不同的模板,其中包含html
head
、导航栏和该服务对所有页面服务器通用的所有UI。第一个
base.html
包含仅向经过身份验证的用户显示的导航栏项目和其他html元素。第二个
base\u anon.html
更轻,包含一些匿名用户可以使用的项目

现在我正在创建第三个模板,它将包含页面的实际内容。我希望此模板扩展
base\u anon.html
base.html
,具体取决于用户是否经过身份验证。如果用户未经过身份验证,变量
user
将无效。有没有办法进行条件模板扩展

我尝试了以下方法:

{% if user %}
    {% extends "base.html" %}
{% else %}
    {% extends "base_anon.html" %}
{% end %}
由tornado渲染时,将生成以下堆栈跟踪(仅复制堆栈的末尾):

我没有更多的信息可以解释这个错误。我在中也找不到任何关于
if
extends
语句之间冲突的信息。知道为什么会出现这个错误吗?如果这是实际需要的,那么根据某个变量的值,我还可以如何使用不同的基本模板


谢谢你的阅读

目前无法满足您的要求。如果使用了
{%extends%}
指令,它必须出现在顶层,并且其参数必须是常量;无法更改要扩展的模板

相反,考虑是否有登录的用户使用不同的顶层模板,并将常见元素封装在<代码> uimoDule< /代码>中。或者将所有

{%if%}
指令放在基本模板中,可能放在
{%block%}
定义周围

Traceback (most recent call last):
  [...]
  File "[...]/lib/python2.7/site-packages/tornado/template.py", line 291, in _generate_python
    ancestors[0].generate(writer)
  File "[...]/lib/python2.7/site-packages/tornado/template.py", line 416, in generate
    self.body.generate(writer)
  File "[...]/lib/python2.7/site-packages/tornado/template.py", line 429, in generate
    chunk.generate(writer)
  File "[...]/lib/python2.7/site-packages/tornado/template.py", line 510, in generate
    self.body.generate(writer)
  File "[...]/lib/python2.7/site-packages/tornado/template.py", line 429, in generate
    chunk.generate(writer)
  File "[...]/lib/python2.7/site-packages/tornado/template.py", line 398, in generate
    raise NotImplementedError()
NotImplementedError