0

デフォルトでは、jinja2 はすべてを自動エスケープしますが、これを止めたいと思います。BaseHandler クラスで次のコードを使用しています。

@webapp2.cached_property
def jinja2(self):
    # Returns a Jinja2 renderer cached in the app registry.
    return jinja2.get_jinja2(app=self.app)

docsによると、get_jinja2() には呼び出し可能な「factory」引数があり、デフォルトは Jinja2() です。これを Jinja2(config={'autoescape':False}) に変更する必要があると思いますが、ファクトリの引数をどのように指定しますか?

4

2 に答える 2

2

顧客パラメーターを使用して jinja インスタンスを構築する呼び出し可能オブジェクトget_jinja2に設定して呼び出す必要があります。factory

@webapp2.cached_property
def jinja2(self):
    # Returns a Jinja2 renderer cached in the app registry, with no autoescaping.
    return jinja2.get_jinja2(lambda app: jinja2.Jinja2(app=app,config={'environment_args':{'autoescape':False}}))
于 2012-08-16T11:04:58.643 に答える
0

テンプレート全体をエスケープする必要はないかもしれません。その場合は、次のタグを試すことができます。

    `{{autoescape false}}` 

詳細については、 ドキュメントを試してください:

于 2012-08-16T11:09:06.580 に答える