У меня есть небольшой простой вопрос в 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??? }
Вы используете Chameleon (расширение.pt), так что вы получите много пробега от чтения своей документации.
<table>
<tr tal:repeat="item items">
<td>${item.name}</td>
<td>${item.description}</td>
</tr>
</table>
% if items:
% for item in items:
<table>
<tr >
<td>${item.name}</td>
<td>${item.description}</td>
% endfor:
% endif: