``嗨!我不明白为什么会弹出此错误,谁可以帮助我
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, )
答案 0 :(得分:1)
fetchall()
返回数据库行对象的列表。您正在通过元组分配将这些行分配给四个不同的变量,但是fetchall()
返回的行多于四行,因此您会收到错误消息。
但是即使返回了四行,该代码仍然是错误的,因为您显然希望返回列,而不是行。
答案 1 :(得分:0)
假设您想将每一列存储在其自己的变量中,则可以使用fetchall
转置zip
调用的结果(返回行而不是John Gordon解释的列)。我认为这是您的意图:
name_vacan, name_company, description, link = zip(*cur.fetchall())
这四个变量中的每一个现在都包含一个长度为n的元组,其中n是查询返回的行数。