如何在不扩展的情况下渲染模板?我有简单的渲染器,我想在找到这个请求之后是ajax只渲染目标数据
我的模板:
{% extends "base.html" %}
{% load i18n %}
{% block extrahead %}
{% endblock extrahead %}
{% block content %}
<div class="itemBg">
<div class="itemTop">
<div class="itemDown">
<div class="rowContainer">
<div class="show att">
{{ msg }}
</div>
</div>
</div></div></div>
{% endblock %}
我只想在ajax请求的渲染响应中使用它。
<div class="itemBg">
<div class="itemTop">
<div class="itemDown">
<div class="rowContainer">
<div class="show att">
{{ msg }}
</div>
</div>
</div></div></div>
这是我的渲染界面
from flask import current_app, render_template
def render(template, **context):
"""
"""
return render_template(path(template), **context)
答案 0 :(得分:4)
您正在寻找null-master fallback技巧。由于Jinja2上下文中提供了request
,如果您使用的是设置适当标头的库,则可以执行以下操作:
{% if not request.is_xhr %}{% extends "base.html" %}{% endif -%}
{% load i18n %}
{% block content %}
<div class="itemBg">
<div class="itemTop">
<div class="itemDown">
<div class="rowContainer">
<div class="show att">
{{ msg }}
</div>
</div>
</div></div></div>
{% endblock %}
答案 1 :(得分:0)
将您想要的AJAX块放在单独的模板中。
当您收到AJAX请求时,只需呈现该新模板即可。对于非AJAX请求,请将其包含在扩展base.html的请求中。