如何使用jinja2,Flask和mongodb以及while循环将数据从数据库传递到html

use*_*858 0 jinja2 mongodb pymongo flask python-3.x

我对将数据从数据库(mongodb)传递到html感到困惑。

我在“ init .py”中具有使用while逻辑查询数据库的python代码-参见以下代码段:

from pymongo import MongoClient

from flask import Flask, render_template

@app.route("/snapshot")

def pymongo_query():
   db=client.collection
   months=[1,2,3,4,5,6,7,8,9,10,11,12]
   while months:
      mon=months.pop()
      query=list(db.collection.find({args}))
      query=query[0]
      month=query['month']
      item_1=query['item_1']
      item_2=query['item_2']
Run Code Online (Sandbox Code Playgroud)

该代码的作用是它遍历每个月,每个月由列表中的数字表示,并查询数据库中的各个月。我用while循环走了几个月。在Python中,我将在循环结束时使用print输出结果。

如何使用jinja2将数据输出到html中?我想知道我是否需要在jinja中使用while逻辑或将其保留在上面的init .py文件中。

LMS*_*rma 5

我希望这能帮到您。

您可以通过将参数item_1,item_2,month等传递给HTMLfile,方法是将其添加到列表或字典中。

list=[month,item_1,item_2]
or 
list=[]

list.append(month)
list.append(item_1)
list.append(item_2)
Run Code Online (Sandbox Code Playgroud)

并通过

@app.route('/')
def something():
    return render_template("abc.html",my_list=list)
Run Code Online (Sandbox Code Playgroud)

现在,要在html中使用此代码(使用jinja2),请添加以下代码:

<ul>
    {% for n in my_list %}
    <li>{{n}}</li>
    {% endfor %}
</ul>
Run Code Online (Sandbox Code Playgroud)

在您的abc.html文件中。现在,再次运行init .py文件并检查输出。