Flask。太多的价值无法解包

时间:2019-07-22 18:58:21

标签: python flask

``嗨!我不明白为什么会弹出此错误,谁可以帮助我

from app import app
from flask import render_template
import sqlite3

@app.route('/')
@app.route('/main')
def index():
    with sqlite3.connect('/home/vlad/Рабочий стол/jobs_aggregator_Flask/data/data.db') as conn:
        cur = conn.cursor()
        cur.execute("SELECT name_vacan,name_company,description,link FROM all_pars_data")
        name_vacan, name_company, description, link = cur.fetchall()
    return render_template('base.html', name_vacan=name_vacan, name_company=name_company,
                           description=description, link=link, )

2 个答案:

答案 0 :(得分:1)

fetchall()返回数据库行对象的列表。您正在通过元组分配将这些行分配给四个不同的变量,但是fetchall()返回的行多于四行,因此您会收到错误消息。

但是即使返回了四行,该代码仍然是错误的,因为您显然希望返回,而不是

答案 1 :(得分:0)

假设您想将每一列存储在其自己的变量中,则可以使用fetchall转置zip调用的结果(返回行而不是John Gordon解释的列)。我认为这是您的意图:

name_vacan, name_company, description, link = zip(*cur.fetchall())

这四个变量中的每一个现在都包含一个长度为n的元组,其中n是查询返回的行数。