Я новичок в Web2Py, стек Python. У меня есть простое требование для реализации. Мне нужно передать некоторые данные из формы пользовательского интерфейса в действие контроллера для обработки. После обработки данных это действие возвращает ответ на представление, которое мне нужно отобразить в виде таблицы HTML на одном представлении. Для этого я использую AJAX.Web2Py - рендеринг ответа AJAX в виде HTML-таблицы
Я могу получить ответ обратно в представление, но не знаю, как перебирать элементы этого ответа для визуализации в виде таблицы HTML. Когда я запускаю приведенный ниже код, все, что он делает, заменяет весь целевой DIV содержимым ответа.
Я знаю, что это довольно прямолинейно в Java, Grails, PHP и т. Д. Но я изо всех сил пытаюсь найти путь к этому в Web2Py.
У меня есть следующие фрагменты кода в моем коде: index.html:
<script>
jQuery('#input_form').submit(function() {
ajax('{{=URL('process_form')}}',
['input_var1','input_var2','input_var3','input_var4'], 'results_div');
return false;
});
<div id="results_div">
<form>
<div class="table-responsive">
<table id="records_table" class="table table-bordered">
<tr>
<th>Col Head 1</th>
<th>Col Head 2</th>
<th>Col Head 3</th>
<th>Col Head 4</th>
</tr>
<tr>
<td>Col Content 11</td>
<td>Col Content 12</td>
<td>Col Content 13</td>
<td>Col Content 14</td>
</tr>
<tr>
<td>Col Content 21</td>
<td>Col Content 22</td>
<td>Col Content 23</td>
<td>Col Content 24</td>
</tr>
</table>
</div>
</form>
</div>
default.py
def process_form():
results = request.vars
return DIV(results)
Любая помощь в этой связи будет значительно оценили.
Спасибо Энтони. Я хотел бы воспользоваться первым подходом, который вы упомянули относительно: «Вы можете создавать HTML-код на Python с помощью HTML-помощников web2py или использовать шаблон, как и любое другое действие контроллера». Не могли бы вы поделиться примером кода построения HTML в Python с помощью HTML2-помощников Web2Py? – MSR
ОК, обновил ответ на примере. – Anthony
Удивительный! Большое спасибо Энтони за то, что он указал мне в правильном направлении. Теперь это имеет гораздо больший смысл. Однако я немного смущен тем, как вы создали TABLE. Я не могу понять семантику синтаксиса, которую вы использовали в 'html = DIV (TABLE (TR ([request.vars [input] для ввода входных данных]), _id = 'records_table', _class = 'table table- bordered '), _class =' table-responsive ') '. Я пытался сравнить это с синтаксисом, показанным на: [link] (http://www.web2py.com/book/default/chapter/05#TABLE--TR--TD), т.е. 'TABLE (* [TR (* rows) для строк в таблице]) ' – MSR