Python 如何将数据传递到jinja模板
在长时间敲击键盘后,我可能会感到疲劳,但我现在无法再往前走了。 代码如下:Python 如何将数据传递到jinja模板,python,postgresql,flask,jinja2,Python,Postgresql,Flask,Jinja2,在长时间敲击键盘后,我可能会感到疲劳,但我现在无法再往前走了。 代码如下: elif request.form["submit"] == "blah": cursor.execute('''SELECT * FROM "Table_x"''') results = cursor.fetchall() for record in cursor: results.append(record) re
elif request.form["submit"] == "blah":
cursor.execute('''SELECT * FROM "Table_x"''')
results = cursor.fetchall()
for record in cursor:
results.append(record)
return "Showing all:" + str(results) + render_template("index.html")
基于以上内容,渲染模板上的输出给了我一个看起来很糟糕的元组列表
[(1, 'Dummy1', 'dummy1', 1), (2, 'Dummy2', 'dummy2', 2), (3, 'Dummy3', 'dummy3', 3)]
如何更改return或results变量(或两者),以便列表中的每个元组都以单独的行打印?问题在于如何使用文档中的以下内容将数据传递到模板: 使用给定上下文呈现模板文件夹中的模板 参数:模板\u名称\u或\u列表–要创建的模板的名称 呈现的,或模板名为第一个现有模板的iterable 将在上下文中呈现–应在中可用的变量 模板的上下文
上下文
只不过是要作为关键字参数传递的变量。下面是一个示例,首先是python文件app.py
:
#!/usr/bin/python3
from flask import Flask, render_template
app = Flask(__name__)
@app.route("/tuple")
def jpg_to_pdf():
results = [(1, 'Dummy1', 'dummy1', 1), (2, 'Dummy2', 'dummy2', 2), (3, 'Dummy3', 'dummy3', 3)]
return render_template('index.html', data=results)
和Jinja模板:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Tuple</title>
</head>
<body>
<table style="width: 100%">
{% for element in data %}
<tr>
<th>{{ element[0] }}</th>
<th>{{ element[1] }}</th>
<th>{{ element[2] }}</th>
<th>{{ element[3] }}</th>
</tr>
{% endfor %}
</table>
</body>
</html>
您可以找到有关呈现模板的更多信息。您需要在jinja中循环查看元组列表,并在每个元组后添加换行符(
)。您的问题似乎在于如何呈现模板。从技术上讲,您创建数据的方式没有问题
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Tuple</title>
</head>
<body>
<table style="width: 100%">
<tr>
<th>1</th>
<th>Dummy1</th>
<th>dummy1</th>
<th>1</th>
</tr>
<tr>
<th>2</th>
<th>Dummy2</th>
<th>dummy2</th>
<th>2</th>
</tr>
<tr>
<th>3</th>
<th>Dummy3</th>
<th>dummy3</th>
<th>3</th>
</tr>
</table>
</body>
</html>