【问题标题】:Passing table contents from SQL to HTML through Python and Jinja通过 Python 和 Jinja 将表格内容从 SQL 传递到 HTML
【发布时间】:2017-07-09 16:34:33
【问题描述】:

我在 phpLiteAdmin 上的数据库中有一个表,正在处理 SQL,我正在尝试通过 Python 获取该表,然后将其发送到 HTML 中,我想将这些列和行添加到表中。我所做的是我选择了该表的那一列并将其放入一个变量中: symbols = db.execute("SELECT symbol FROM table") 我得到的是这样的: symbols = ['symbol':'item1','symbol':'item2'...]

我通过 python 将它发送到 HTML,然后使用 Jinja 我正在做一个 for 循环以将它们打印在一个表中。但我希望能够一次打印该列的每个元素。 当我使用:

<td>{% for symbol in symbols %}
{{symbol["symbol"]}}</td>
{% endfor %}

它打印符号中的所有元素..但我只想打印 1,然后在插入其他列之后我想打印第二个和第三个元素..等等 我得到的是: {'symbol': 'item1'} {'symbol': 'item2'} ... 要么 item1 item2 ... 我想要的是首先打印: item1 然后在我对其他列执行相同操作后,我想打印item2 我尝试了我所知道的一切,并试图找到一种方法来打破循环,但我没有得到我想要的结果;找不到有关此特定问题的任何链接或提示...可行吗?如果是这样,我该如何实施? P.S:这是我第一次在这里发帖..所以我对这个东西还是有点陌生​​:)

【问题讨论】:

  • “我什么都试过了”。对,好吧……什么是一切?你能提供一些例子吗?
  • 列表和字典不一样。你需要具体说明你拥有什么。您提供的样本也无效。
  • @daniel 你是对的,我的错……我解决了这个问题
  • @david 好吧,我尝试了我所知道的一切,从昨天开始我一直在寻找答案..
  • 你还没有修复,还是无效。请出示symbols的真实内容。

标签: python html sql html-table jinja2


【解决方案1】:

如果你的数据是这样的,symbols = ['item1','item2','item2',..] 那么,

{% for symbol in symbols %}
<td>{{symbol}}</td>
{% endfor %}

如果你的数据是symbols = ['symbol':'item1'],那么,

{% for i in symbols %}
<td>{{i.symbol}}</td>
{% endfor %}

【讨论】:

  • 我实际上尝试过,输出是 {'symbol': 'item1'}.. 我也尝试输入 symbol["symbol"].. 但它再次打印了所有项目,如 item1 item2 ...有没有办法在 1 次迭代后停止 for 循环?
【解决方案2】:

正如我在 cmets 中所说,您应该具体说明您获得的数据的实际格式;一旦你这样做了,解决方案就会变得更加清晰。

据我所知,您的数据库接口返回给您一个字典列表。因此,您可以遍历该列表,并在每次迭代中访问您想要的字典键:

{% for symbol in symbols %}
    <td>{{ symbol['symbol'] }}</td>
{% endfor %}

【讨论】:

  • 我刚刚尝试过仍然得到相同的结果..它返回了该列中的所有行,但我只想一次打印一个
  • 我不知道你在这里的意思。显然,一个循环会遍历你给它的任何东西,你还期待什么?
  • 我想知道是否有办法打破循环或在某个迭代后停止循环。
  • 不,我不知道你为什么要这么做。如果您有其他列要显示,为什么要单独查询它们?您的视图应该以适合显示它的格式构建您想要显示的数据,然后您的模板应该迭代并显示数据。
  • 我应该同时查询所有列吗?我应该只选择一个查询中的表或所有列,然后在 HTML 中遍历表吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-05-29
  • 2019-03-18
  • 2018-12-28
  • 1970-01-01
  • 1970-01-01
  • 2013-11-13
  • 1970-01-01
相关资源
最近更新 更多