Flask,正在尝试从mysql db读入数据(不是字符串格式化期间转换的所有参数)

Flask,正在尝试从mysql db读入数据(不是字符串格式化期间转换的所有参数),mysql,flask,Mysql,Flask,正在尝试使用条形图创建页面。我正在使用Flask框架和MySQL数据库 @app.route("/grafiek") def chart(): data = [] years = optimize_list(get_data("SELECT DISTINCT year FROM tbldata")) print(years) sql = "SELECT cast(sum(Number_employees) as signed) FROM tbldata"

正在尝试使用条形图创建页面。我正在使用Flask框架和MySQL数据库

@app.route("/grafiek")
def chart():
    data = []
    years = optimize_list(get_data("SELECT DISTINCT year FROM tbldata"))
    print(years)

    sql = "SELECT cast(sum(Number_employees) as signed) FROM  tbldata"
    sql += "WHERE year = (%s) GROUP BY year, month ORDER BY year, month ASC"
    print(sql)

    for year in years:
        data_part = optimize_list(get_data(sql, year))
        data.append(data_part)

        print(data)

        labels = optimize_list(get_data("SELECT DISTINCT month FROM faillisementen.tbldata"))
        titels= "Number Employees in faillisementen"
        colors = ['red', 'green']

        return render_template("chart.html", data=data, labels=labels)
在运行时,我得到一个错误:

getting data
SELECT cast(sum(Nulber_employees) as signed) FROM  tbldata
not all arguments converted during string formatting
我认为错误与以下几行有关:

sql = "SELECT cast(sum(Number_employees) as signed) FROM  tbldata"
sql += "WHERE year = (%s) GROUP BY year, month ORDER BY year, month ASC"
请问我该怎么修

更新: 如果未使用带(%s)的第二行,则会出现错误“字符串格式化期间未转换所有参数”。当这条线被使用时,我会得到一个不同的错误

(1064, "You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '= (2011) GROUP BY jaar, maand ORDER BY jaar, maand ASC' at line 1")
可能是第二行中的(%s):

sql+=“其中年=(%s)按年分组,按年按月订单,按月ASC”

如果你拆下那条线,它能工作吗


请参见

我找到了一种将数据库中的数据输入图表的不同方法

谢谢你

def get_faillissementen(jaar):
    connectie = mysql.connect()
    cursor = connectie.cursor()

    try:
        cursor.execute("select sum(Aantal_faillissementen) from data where jaar = '%s' group by Maand ", jaar)

    except Exception as e:
        print(e)

    # alles eruit halen
        # Als je maar 1 gegeven hebt => fetchone()
    results = cursor.fetchall()
    db_data = []

   for row in results:
        db_data.append(int(row[0]))


    cursor.close()
    connectie.close()

    return db_data

@app.route("/chart")
def chart():
    jaar_2011 = get_faillissementen(2011)
    jaar_2012 = get_faillissementen(2012)
    jaar_2013 = get_faillissementen(2013)
这使它变得容易多了