2013-02-20 2 views
0

В конце пользователь, скажем, у меня есть люди, которые выбирают школьные записи через форму для отображения в таблице ниже.Динамический HTML-контент и переменные Python с Flask

Например, они выбирают свое имя из списка имен и извлекают свои записи из базы данных.

В зависимости от их учебного года они могут иметь 1, 2, 3 или 4 года записей, поэтому данные, вытащенные данные, будут всегда выглядеть иначе.

После того, как они отправляют форму, их записи хранятся в переменной, содержащей все их записи, а затем каждая запись разбивается на подтипы, например, все записи в английском отделе. Эти подтипы хранятся в других списках - так что есть список всех английских записей. Назовем эту переменную english_records. Я хочу использовать эти переменные подтипа, чтобы иметь возможность отображать только те данные, которые хотят видеть пользователи, и представлять все данные в этом конкретном списке.

Таким образом, используя функцию render_template Flask, я пытаюсь отправить каждую из этих записей в шаблон html, который создаст ячейку таблицы для каждой записи.

То, что я пытался (что не работает до сих пор) что-то вроде:

Python:

i = 0 
def index(): 
    for e in english_records: 
     english_records = [ 
      { 
       'english': english_records[i] 
      } 
     ] 
     i = i + 1 
    return render_template("index.html", 
     english_records = english_records) 

И в HTML:

...table above... 
{% for record in english_records %} 
<td> 
    {{record.english}} 
</td> 
{% endfor %} 
...table continues... 

До сих пор я получал ячейки таблицы, созданные для каждой записи, но записи не пропускались. Кто-нибудь знает, как это сделать?

ответ

0
for e in english_records: 
     english_records = [ 
      { 
       'english': english_records[i] 
      } 
     ] 
     i = i + 1 

Этот цикл здесь создает список, но члены этого списка не имеют «английский» ключа, так в шаблоне, то цикл выполняются, но нет никакого значения для {{record.english}}, следовательно, игнорируется. Все, что вы получите, это строки таблицы без каких-либо данных.

+0

Так как я могу это исправить? Разве 4-я линия не дает этот ключ? –

2

Есть ли причина, по которой вы предварительно обрабатываете данные? На что похож english_records? Если моя догадка правильная, то на самом деле вам не нужен цикл for.

Существует также проблема, заключающаяся в том, что вы переписываете начальную переменную english_records с помощью english_records в цикле for, поэтому назначение, в то время как законное с точки зрения синтаксиса, логически бессмысленно.

Другая проблема заключается в том, что, в зависимости от фактического типа первого english_records, вы не должны использовать счетчик: если english_records является list, то она будет содержать значение, которое вы ищете. Если english_records - dict, то перечисление может выглядеть как for key, val in english_records.iteritems().

Смежные вопросы