【问题标题】:print db values as strings with jinja and sqlite使用 jinja 和 sqlite 将 db 值打印为字符串
【发布时间】:2017-08-01 16:26:39
【问题描述】:

我在烧瓶应用程序中运行两个脚本,结果不同。 第一个以字符串形式返回数据库值:

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

第二个我只从列表中获取一个值:

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 %}

输出:

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

我正在寻找的是这样的:

Nasdaq
Russia
Samsung

谢谢!

【问题讨论】:

    标签: python sqlite jinja2


    【解决方案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 %}
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多