【问题标题】:How to display an array of objects in page template in Pyramid?如何在 Pyramid 的页面模板中显示对象数组?
【发布时间】:2013-09-27 02:52:45
【问题描述】:

我有一个关于 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??? }

【问题讨论】:

    标签: python html web-applications web pyramid


    【解决方案1】:

    您正在使用 Chameleon(.pt 扩展名),因此您可以通过阅读他们的 documentation 获得很多好处。

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

    【讨论】:

      【解决方案2】:
      % if items:
      
      % for item in items:
      
      <table>
        <tr >
          <td>${item.name}</td>
          <td>${item.description}</td>
      
      % endfor:
      
      % endif:
      

      【讨论】:

        猜你喜欢
        • 2015-06-20
        • 1970-01-01
        • 2017-05-01
        • 1970-01-01
        • 1970-01-01
        • 2017-09-20
        • 2021-08-01
        • 2012-12-30
        • 1970-01-01
        相关资源
        最近更新 更多