Как отобразить массив объектов в шаблоне страницы в Pyramid?

0

У меня есть небольшой простой вопрос в 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??? }
Теги:
web
web-applications
pyramid

2 ответа

3
Лучший ответ

Вы используете Chameleon (расширение.pt), так что вы получите много пробега от чтения своей документации.

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

% for item in items:

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

% endfor:

% endif:

Ещё вопросы

Сообщество Overcoder
Наверх
Меню