gpt4 book ai didi

python - 如何使用 Flask 中的 DropDownMenu 获取 MongoDB 中的所有 IdObject

转载 作者:行者123 更新时间:2023-12-01 07:11:04 25 4
gpt4 key购买 nike

我的目标是使用 Bootstrap 的 dropdownMenu,其中菜单中的每个项目都会获取我的 MongoDB 的 IdObject。

原因是我希望将这些 IdObjects 放在一个列表中,以便获取存储在该集合中的所有数据。因此,这是我的代码:

HTML

<div class="dropdown-menu" aria-labelledby="dropdownMenu2">
{% for row in rows %}
<button class="dropdown-item" href="./get_object?_id={{row['_id']}}" type="button">{{row['_id']}}</button>
{% endfor %}
</div>

Python

@app.route("/get_object", methods=['POST', 'GET'])
def get_object():
cursor = object_collection.find({})
for document in cursor:
row = document['_id']
return render_template("get_object.html", rows=row)

不知怎的,我没有得到我想要的。我在 python 文件和 HTML 中遇到了一些错误。我这样做的方式好吗?

  File "˜/application/app.py", line 52, in get_object
return render_template("get_object.html", rows=row)

File ˜/application/templates/get_object.html", line 18, in block "content"
{% for row in rows %}

最佳答案

你只想要一个列表。现在,您在 for 循环中拥有了 return。相反,只需附加到列表并立即使用整个列表调用模板即可:

@app.route("/get_object", methods=['POST', 'GET'])
def get_object():
rows = [] # define an empty list
cursor = object_collection.find({},{ "_id": 1 })
for document in cursor:
rows.append(document['_id']) # <- append to the list

return render_template("get_object.html", rows=rows) # Use the whole list in output

另请注意,.find({},{ _id: 1 })投影_id 结果中的字段而不是整个对象。因此,当您只需要 _id 值以便不通过网络发送不必要的数据时,这非常有用。

在您的模板中,现在只是一个值列表,因此没有 _id 属性。只需使用该值:

<button class="dropdown-item" href="./get_object?_id={{row}}" type="button">{{row}}</button>

关于python - 如何使用 Flask 中的 DropDownMenu 获取 MongoDB 中的所有 IdObject,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58215736/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com