в web2py, могу ли я получить новые строки в выводе помощников HTML?

Я делаю таблицу с помощью HTML-помощников web2py. Мой код основан на примере из книги web2py:

>>> table = [['a', 'b'], ['c', 'd']]
>>> print TABLE(TR(*table[0]), TR(*table[1]))
<table><tr><td>a</td><td>b</td></tr><tr><td>c</td><td>d</td></tr></table>

У меня довольно большая таблица, но этот подход помещает весь вывод в одну большую строку. Для удобочитаемости HTML я был бы признателен за возможность добавлять новые строки после каждого ‹/tr›. Мне нравятся вспомогательные функции HTML, поэтому я предпочитаю не использовать простой подход {{for ...}} ... {{pass}} в представлении.


person Hugo Ideler    schedule 18.05.2011    source источник


Ответы (1)


Строка кода Python для вставки '\n' после каждого тега конца строки должна помочь. Что-то вроде этого

{{
table = [['a', 'b'], ['c', 'd']]
table_html=XML(TABLE(TR(*table[0]), TR(*table[1])))
table_html=table_html.replace('</tr>','</tr>\n')
response.write(table_html,escape=False)
}}

Что это делает?

Он сериализует (преобразует в строку) помощник TABLE, использует строковый атрибут Python replace() для вставки новых строк и, наконец, использует функцию web2py response.write() для вывода измененной строки в документ.

person ravenspoint    schedule 18.05.2011