2017-08-01 9 views
1

フラスコアプリケーションで2つのスクリプトを実行していますが、結果は異なります。db値をjinjaとsqliteの文字列として出力

for row in cursor.execute("SELECT tweet,sentiment FROM thistable 
    WHERE sentiment > 70 AND +keyword=? ORDER BY sentiment DESC", (query,)): 
    bestlist.append(row) 

HTML::

{% for tweet, sentiment in bestlist %} 

<h3>{{ tweet }}</h3>> 
<h5>Score : {{ sentiment }}</h5> 

{% endfor %} 

出力

Lorem ipsum dolor sit 
Score : 94.9 
Ameat valc simon chaq 
Score : 88.2 

私はリストから一つの値だけを取得しています第二1:

一つ目は文字列としてデータベース値を返します。
for row in cursor.execute("SELECT DISTINCT keyword FROM thistable"): 
last_keys.append(row) 

HTML:

{% for row in last_keys %} 
<h3>{{ row }}</h3> 
{% endfor %} 

同じこと..

{% for keyword in last_keys %} 
<h3>{{ keyword}}</h3> 
{% endfor %} 

出力:

Nasdaq 
Russia 
Samsung 

ありがとう:

(u'Nasdaq',) 
(u'Russia',) 
(u'Samsung',) 

私が探している何のようなものです!

答えて

2

だけ(だけ単一の列が含まれているが、1組のような)全体rowを追加していない、とあなたはあなたが期待する結果を得る必要があります。完全を期すため

for row in cursor.execute("SELECT DISTINCT keyword FROM thistable"): 
    last_keys.append(row[0]) 

を、代替がありますテンプレート内で反復処理を行うときに最初の行要素に明示的にアクセスするには:

{% for row in last_keys %} 
    <h3>{{ row[0] }}</h3> 
{% endfor %} 
関連する問題