如何在金字塔中的页面模板中显示对象数组?

时间:2013-09-21 22:41:18

标签: python html web-applications web pyramid

我在HTML + Pyramid中有一个简单的小问题。

考虑我在数据库中有一个表,我想在我的页面模板中显示该表中的所有记录。 我知道如何从数据库中检索数据,但我不知道如何在HTML页面上显示它们。我知道如何显示一个单独的值,例如表中的记录总数。我可以在我的可调用视图上返回一个简单的JSON并渲染它。像这里:

@view_config(route_name='tasks', renderer='templates/tasks.pt')
def view_tasks(request):
    try:
        count = DBSession.query(MyTable).all().count()
    except DBAPIError:
        return Response(conn_err_msg, content_type='text/plain', status_int=500)
    return { 'Total' : count }

相应的HTML代码:

...
<h3>Now ${Total} tasks are not completed</h3>
...

但是如何返回一组记录?或者我如何以另一种方式在HTML页面上显示它们? 有什么建议吗?

@view_config(route_name='tasks', renderer='templates/tasks.pt')
def view_tasks(request):
    try:
        items = DBSession.query(Task).all() # this is a set of objects
    except DBAPIError:
        return Response(conn_err_msg, content_type='text/plain', status_int=500)
    return { # how to display them on page tamplate??? }

2 个答案:

答案 0 :(得分:3)

你正在使用变色龙(.pt扩展名),所以你在阅读documentation时会获得很多好处。

<table>
  <tr tal:repeat="item items">
    <td>${item.name}</td>
    <td>${item.description}</td>
  </tr>
</table>

答案 1 :(得分:0)

% if items:

% for item in items:

<table>
  <tr >
    <td>${item.name}</td>
    <td>${item.description}</td>

% endfor:

% endif: