对Python和水瓶来说是全新的。尝试从数据库中读取数据并将数据传递给Javascript。把我的头发拔出来,想让它起作用,因为我认为它很小
在我的python脚本中有:
@app.route('/report')
def test():
db = get_db()
cur = db.execute('select * from emails where id=1')
emails = cur.fetchall()
print emails
return render_template('report.html', name=links, emails=emails)然后在我的javascript中我有:
{% for entry in emails %}
var getEmail = {{entry.1}}
window.alert(getEmail);
emailArray.push(getEmail)
{% endfor %}打印电子邮件输出的是[(1, u'e')],这是正确的,但window.alert给了我“未定义”。如果我将它更改为var getEmail = {{entry.0}},它将从数据库中给出正确的ID值。有人能告诉我我哪里出错了吗?
发布于 2014-02-22 18:40:17
你们正在产生:
var getEmail = e;因为e是未定义的,所以它无法工作。
您希望引用变量;使用随safe附带的safe(以避免引用生成的"引号):
var getEmail = {{ entry.1|tojson|safe }};它将生成有效的JSON,这是Javascript的一个子集。现在你的台词是:
var getEmail = "e";或者,一次性设置emailArray列表(不需要对emails进行循环):
var emailArray = {{ emails|map(attribute=1)|list|tojson|safe }};它将接受您的emails列表,选择每个元组的第二个元素,并将结果列表输出为JSON列表,结果如下:
var emailArray = ["e"];https://stackoverflow.com/questions/21958641
复制相似问题