我的目标是使用 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 %}
1 回答
犯罪嫌疑人X
TA贡献2080条经验 获得超4个赞
你只想要一个清单。现在你有循环return内。for相反,只需附加到列表并立即使用整个列表调用模板:
@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
在您的模板中,这现在只是一个values列表,因此没有_id属性。只需使用值:
<button class="dropdown-item" href="./get_object?_id={{row}}" type="button">{{row}}</button>
添加回答
举报
0/150
提交
取消