-1
神社テンプレートで正常に動作しません: -Pythonの関数は、私はPythonの機能を持っている
def lookup(symbol):
"""Look up quote for symbol."""
# reject symbol if it starts with caret
if symbol.startswith("^"):
return None
# reject symbol if it contains comma
if "," in symbol:
return None
# query Yahoo for quote
# http://stackoverflow.com/a/21351911
try:
url = "http://download.finance.yahoo.com/d/quotes.csv?f=snl1&s={}".format(symbol)
webpage = urllib.request.urlopen(url)
datareader = csv.reader(webpage.read().decode("utf-8").splitlines())
row = next(datareader)
except:
return None
# ensure stock exists
try:
price = float(row[2])
except:
return None
# return stock's name (as a str), price (as a float), and (uppercased) symbol (as a str)
return {
"name": row[1],
"price": price,
"symbol": row[0].upper()
}
と私は私の神社テンプレートにインポート: - 、この通常のpythonファイルで
app.jinja_env.globals.update(lookup = lookup)
: -
print(lookup("NFLX"))
は出力を生成します -
{'price': 162.43, 'symbol': 'NFLX', 'name': 'Netflix, Inc.'}
が、私のテンプレートでは、この: -
{% set stock = lookup[info['stock']] %}
{{stock['price']}}
はエラーを与える: -
jinja2.exceptions.UndefinedError: 'function object' has no attribute 'AAPL'
AAPLは、情報の価値[ '株式']で、アップルの株価名前です。私は通常のpythonファイルで同じコードを実行し、それが実行され、私もJinjaで数値のusd値を返す別の関数を実行しようとした(おそらく単なる値を返すため)実行されます。検索機能がテンプレートで機能しないのはなぜですか?
以下は機能しますか? '{%set stock = lookup(info ['stock'])%}'角括弧ではなく、丸かっこに注意してください。 –
ありがとうございました!そんなばかげたミスを信じられない! – firstlegagain1