Невозможно распечатать данные на html странице из mysql запроса в flask python - PullRequest
0 голосов
/ 04 марта 2020

Это мой файл app.py. mysql Запрос обычно получает данные

@app.route('/dashboard', methods=['GET', 'POST'])
#@is_logged_in
def dashboard():
    form = GenreForm(request.form)
    if request.method == 'POST':
      genre = request.form['genre']
      cur = mysql.connection.cursor()
      result = cur.execute("""SELECT * FROM music_src WHERE type_of_music = %s"""(genre,))
    if result > 0:
      data = cur.fetchone()
    else:
      return redirect(url_for('dashboard'))
      cur.close()
return redirect(url_for('search', data=data))

Вот мой поиск. html Код

{% extends 'layout.html' %}
{% block body %}
<table border="1" bordercolor="white" cellpadding="15" cellspacing="35" style="font-family:Georgia, Garamond, Serif;color:white;font-style:italic;">
    <thead>
    <tr>
        <th>ID</th>
        <th>Title</th>
        <th>Type_of_music</th>     
    </tr>
    </thead>
    <tbody>
        {% for row in data %} 
            <tr>
                <td>{row[0]}</td>
                <td>{row[1]}</td>
                <td>{row[2]}</td>   
            </tr>
        {% endfor %}       
    </tbody>
</table>
{% endblock %}

Когда я отлажен mysql запрос передает данные, как показано ниже. Это причина, почему это не печать? Если так, как я могу напечатать это в табличном формате ID Title и Type_of_musi c

data={'id':+28,+'title':+'Once+upon+a+time+&ndash;+James+Bond',+'type_of_music':+'sad'}

Ответы [ 2 ]

0 голосов
/ 05 марта 2020

Вот ответ на вышеуказанную проблему. Необходимо добавить этот сеанс ['data'] = data

@app.route('/dashboard', methods=['GET', 'POST'])
#@is_logged_in
def dashboard():
    form = GenreForm(request.form)
    if request.method == 'POST':
      genre = request.form['genre']
      cur = mysql.connection.cursor()
      result = cur.execute("""SELECT * FROM music_src WHERE type_of_music = %s"""(genre,))
    if result > 0:
      data = cur.fetchall()
      **session['data'] = data**
    return redirect(url_for('search', data=data))
    else:
      return redirect(url_for('dashboard'))
      cur.close()
return redirect(url_for('search', data=data))
0 голосов
/ 04 марта 2020

data = cur.fetchone () это только возврат 1, что означает, что вам не нужно повторять попытку -> удалить "{% для строки в данных%}"?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...