为了账号安全,请及时绑定邮箱和手机立即绑定

如何在 Flask 中使用 DropDownMenu 获取 MongoDB 中的所

如何在 Flask 中使用 DropDownMenu 获取 MongoDB 中的所

偶然的你 2022-06-14 16:13:26
我的目标是使用 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>



查看完整回答
反对 回复 2022-06-14
  • 1 回答
  • 0 关注
  • 127 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信