Результат запроса базы данных не будет загружен в шаблон фляги - PullRequest
0 голосов
/ 12 мая 2019

Я изменил способ запроса базы данных, и хотя результат загружается нормально, я не могу отобразить информацию в шаблоне.

Я попытался переписать код более простым способом, чтобы попытаться пойматьошибки но ничего не нашли.Я не уверен, что еще делать.

from flask import render_template
from app import app, db


@app.route("/page")
def page():
    '''
    this is the old way that is useable in the template
    result = Test.query.filter_by(id=12))
    '''


    # test variables
    d = 65465
    s = 'rebrb'


    result = db.engine.execute('SELECT * FROM test WHERE id IN (183, 184, 180, 181, 182, 185, 95, 179)')
    # new way works here but not in the template
    print(result)
    for row in result:
        print(row.content)
    return render_template('page.html', s=s, d=d, result=result, title='Video')





'''
The d and s load but the for loop doesn't do anything 
'''
{{ d }}
{{ s }}
    {% for row in result %}
        {{ row }}
        {{ d }}
    {% endfor %}

Переменные d и s отображаются, но ничего за циклом for не работает.

edit 1: Я сделалнекоторый прогресс путем преобразования результата в список перед отправкой его в шаблон, но я чувствую, что не должен был этого делать, и я все еще ищу лучший вариант.

edit 2: Я обнаружил, что могу также выполнить запрос таким образом.

result = Test.query.filter(Test.id.in_(183, 184, 180, 181, 182, 185, 95, 179))

Что работает лучше, но мне нужно, чтобы результат был в том же порядке, что и список

1 Ответ

0 голосов
/ 12 мая 2019

Запрос, который я пытался изменить, можно выполнить с помощью

result = Test.query.filter(Test.id.in_(95, 179, 180, 181, 182, 183, 184, 185))

без каких-либо дополнительных проблем.

...