4

私はグーグルアプリエンジンで次のようなことをしていました:

self.render('hello.html', value=null)

しかし、明らかにPythonはnullを理解していないため、未定義の変数であると考えてエラーを出します。

文字列 (value="null") として送信すると、javascript は文字列 "null" ではなく null を意味することを認識しません。

それで、これを回避する方法は何ですか?

少しでも関係がある場合は、値 null を JavaScript の Google 散布図に渡そうとしています。

4

2 に答える 2

8

私はあなたが次のようなことをしていると仮定しています:

self.render('hello.html', value=[0.1, None, None, 0.5])

テンプレートエンジンにそれを文字列に変換させると、次のようになります。

 [0.1, None, None, 0.5]

その場合は、jinja に渡す前に Python で JavaScript に変換する必要があります。

import json
self.render('hello.html', value=json.dumps([0.1, None, None, 0.5]))

それはあなたに与えるでしょう:

[0.1, null, null, 0.5]

それはあなたが求めていると私が思うものです。

さらに良い解決策は、カスタム フィルターを jinjaに追加して、 javascript エスケープを処理することです。それは次のようになります。

import json
def jsonfilter(value):
    return json.dumps(value)

environment.filters['json'] = jsonfilter

次に、テンプレートで次のことができます

{{value|json}}
于 2012-06-14T04:12:44.577 に答える
3

テンプレートが次のようになっていると仮定します。

plotdata = [0.1, {{value}}, null, 0.5]

(使用しているテンプレート エンジンによって異なります)、次に:

self.render('hello.html', { "value": "null" })

レンダリングされたテンプレートは以下を生成するはずです:

plotdata = [0.1, null, null, 0.5]

これが機能しない場合は、使用しているテンプレート エンジン、送信しようとした値、レンダリングの正確な結果をお知らせください。

于 2012-06-14T02:47:53.830 に答える