首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >从数据库中读取数据并在瓶中传递给JavaScript

从数据库中读取数据并在瓶中传递给JavaScript
EN

Stack Overflow用户
提问于 2014-02-22 18:35:58
回答 1查看 1.9K关注 0票数 1

对Python和水瓶来说是全新的。尝试从数据库中读取数据并将数据传递给Javascript。把我的头发拔出来,想让它起作用,因为我认为它很小

在我的python脚本中有:

代码语言:javascript
运行
复制
@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中我有:

代码语言: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值。有人能告诉我我哪里出错了吗?

EN

Stack Overflow用户

回答已采纳

发布于 2014-02-22 18:40:17

你们正在产生:

代码语言:javascript
运行
复制
var getEmail = e;

因为e是未定义的,所以它无法工作。

您希望引用变量;使用随safe附带的safe(以避免引用生成的"引号):

代码语言:javascript
运行
复制
var getEmail = {{ entry.1|tojson|safe }};

它将生成有效的JSON,这是Javascript的一个子集。现在你的台词是:

代码语言:javascript
运行
复制
var getEmail = "e";

或者,一次性设置emailArray列表(不需要对emails进行循环):

代码语言:javascript
运行
复制
var emailArray = {{ emails|map(attribute=1)|list|tojson|safe }};

它将接受您的emails列表,选择每个元组的第二个元素,并将结果列表输出为JSON列表,结果如下:

代码语言:javascript
运行
复制
var emailArray = ["e"];
票数 3
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21958641

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档