当前位置: 首页 > 面试题库 >

如何在Python中将列表作为变量返回并在Jinja2中使用?

满昊然
2023-03-14
问题内容

我正在尝试用Python做某事,但我陷入了困境。我在Couchdb中有一个用户列表(使用python benchdb库和Flask框架),这些用户具有用户名(即_id)和电子邮件。我想在jinja2模板的选择框中使用电子邮件地址列表。

我的第一个问题是如何访问电子邮件地址。如果我做:

for user in db:
    doc = db[user]
    emails = doc['email']
    print options

我得到:

email@domain.com
otheremail@otherdomain.com
yetanotheremail@yetanotherdomain.com

这样我就可以获得我的电子邮件列表。但是我残酷的经验不足之处在于我不知道该如何使用它们。该列表仅存在于for循环中。如何将该列表作为可用变量列表返回?然后,如何在我的jinja2模板的选项下拉列表中显示该列表。


问题答案:

假设你有一个模型,例如:

class User(Document):
    email = TextField()

你可以使用loadUser类的静态方法

users = [User.load(db, uid) for uid in db]

现在你可以执行以下操作:

for user in users:
    print user.id, user.email  

但是你在flask中使用它,因此,在你的视图中,可以使用以下方式将此用户列表发送到模板:

from flask import render_template
@app.route("/users")
def show_users():
    users = [User.load(db, uid) for uid in db]
    return render_template('users.html', users=users)

现在,在users.htmljinja2模板中,以下内容将输出每个用户电子邮件的下拉列表框

<select>
{% for user in users %}
    <option value="{{ user.id }}">{{ user.email }}</option>
{% endfor %}
</select>


 类似资料:
  • 问题内容: 在Python 2.7中,我可以将字典键,值或项作为列表获取: 现在,在Python> = 3.3中,我得到如下信息: 因此,我必须这样做以获得列表: 我想知道,是否有更好的方法在Python 3中返回列表? 问题答案: 尝试。 这会将对象转换为列表。 另一方面,你应该问自己是否重要。的编码方式是假设鸭子输入(如果看起来像鸭子,而像鸭子一样嘎嘎叫,那就是鸭子)。在大多数情况下,该对象的

  • 问题内容: 我在web.py中玩一个小型Web应用程序,并且正在设置一个URL以返回JSON对象。使用python将SQL表转换为JSON的最佳方法是什么? 问题答案: 就个人而言,我更喜欢使用SQLObject进行此类操作。我改编了一些必须快速完成的测试代码:

  • 问题内容: 我正在使用列表,其中列出了我的程序中的某些功能。这实际上是一个共享列表,我的所有功能都可以对其进行编辑。在所有功能中是否真的有必要将其定义为“全局”? 我的意思是在使用它的每个函数中放置global关键字,还是在所有函数之外定义它就足够了,而无需在其定义后面使用global字? 问题答案: 分配变量()时,将在当前作用域(例如,当前函数的本地范围)中创建一个变量。如果它恰好在外部(例如

  • 问题内容: 给出清单 您可以使用诸如 但是,我想基于代码中其他位置设置的变量来执行此操作。我可以很容易地做到这一点 但是,我该如何为另一个做呢?我尝试用列表建立索引: 但这是行不通的。我也尝试过使用字符串: 但这也不起作用。 这可能吗? 问题答案: 那是为了: 与使用相同。

  • 问题内容: 我正在使用ServiceStack的Redis客户端。我有一个Lua脚本,该脚本用多个Redis调用的结果填充Lua表。我想以某种方式返回此表。我的想法是使用客户端库中的ExecLuaShaAsList方法,并在lua脚本中执行“ return myTable”。它不起作用,我总是返回一个空列表。 如何将lua表返回给Redis客户端? 这是我与Redis客户端一起使用的C#脚本: 提

  • 问题内容: 我想根据用户选择的值导入一些软件包。 默认值为: 如果用户选择,则应为: 在PHP中,我可以使用变量variable来做到这一点: 如何在Python中执行此操作? 问题答案: Python没有与PHP的“变量变量”直接等效的功能。要获取“变量变量”的值(或任何其他表达式的值),可以使用该函数。 但是,这不能在语句中使用。 可以使用该函数通过变量导入。 相当于