3

拡張せずにテンプレートをレンダリングするにはどうすればよいですか?私は単純なレンダラーを持っていて、このリクエストが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)
4

2 に答える 2

4

ヌルマスターフォールバックトリックを探しています。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 %}
于 2012-07-12T19:55:22.497 に答える
0

AJAXに必要なブロックを別のテンプレートに配置します。

AJAXリクエストを受け取ったら、その新しいテンプレートをレンダリングするだけです。AJAX以外のリクエストの場合は、base.htmlを拡張するリクエストに含めます。

于 2012-07-10T12:18:50.513 に答える