从下拉列表中的数据库mysql中选择条目,python flask

时间:2017-11-12 16:35:39

标签: python flask mysql-python

我想从MySQL中的数据库表中选择数据。这是Python中的程序

@app.route('/formworkers.html')
def formworkers(): 
cursor = mysql.connection.cursor()
cur = cursor.execute("SELECT ID_worker, surname FROM workers")
return render_template('formworkers.html', workers0=cursor.fetchall())

Jinja2中的模板

{% extends "layout.html" %}
    {% block body %}
    {% if session.logged_in %}
    <form action="" method=post class=add-worker >
      <dl>
        <dt>Surname:
        <dd><select name="worker0">
        {% for ID_pats, surname in workers0 %}
        <option value="{{ ID_worker }}">{{ surname }}</option>
        {% endfor %}
        </select>
        <br><br>
        <dd><input type=submit value="Submit">
      </dl>
    </form>
  {% endif %}
{% endblock %}

但下拉列表中不包含数据库中的数据(例如[Ivanov,Petrov,Sidorov]),它包含值[姓氏,姓氏,姓氏]。谢谢。

1 个答案:

答案 0 :(得分:1)

查询将结果作为字典列表输出,因此当您在for循环中将其解压缩时,您只会获得一个键"ID_worker""surname"的列表。

您可以更改to access the values下面的模板:

{% for worker in workers0 %}

<option value="{{ worker.ID_worker }}">{{ worker.surname }}</option>

{% endfor %}