execute()接受2个位置参数,但给出3个

问题描述 投票:0回答:1

我在标题中得到TypeError并且不太清楚为什么。在DB-API’s parameter substitution之后,这应该工作正常。

这是我正在处理的转换网站。我使用基本单位乘数将一个单位转换为另一个单位。所以例如厘米到码就像这样。

amount =要转换的用户输入

row_1 =用户选择的第一个基本单位乘数(cm到米)

row_2 =用户选择的第二个基准乘数(米到码)

conversion_results = amount * row_1 * row_2 - ¹

我试过'%s',但是明白这会让我处于危险之中,所以下面是我目前所坚持的。我正在为Python表和PythonLiteAdmin工作。

编辑我试图简单地输入一个字符串,例如(Meter,),(“Meter”,),(Meter)和(“Meter”),我仍然得到相同的错误。我添加了我的SQL表的图片,因为它可能有问题吗?

Structure of my table Contents of my table

from cs50 import SQL
from flask import Flask, flash, redirect, render_template, request, session, 
url_for
from flask_session import Session
from passlib.apps import custom_app_context as pwd_context
from tempfile import gettempdir

from helpers import *
db = SQL("sqlite:///countertapp.db")    

@app.route("/length", methods=["GET", "POST"])
def length():

if request.method == "GET":
    return render_template("length.html")

if request.method == "POST":

    amount = request.form.get("amount")

    if not amount:
        return apology("Enter some numbers")
    elif amount.isalpha():
        return apology("No letters please")
    elif any(c.isalpha() for c in amount):
        return apology("I said no letters!")

    convert_from = request.form.get("unit_1")
    convert_to = request.form.get("unit_2")


    row_1 = db.execute("SELECT bum FROM conversion WHERE unit = ?", (convert_from,))
    row_2 = db.execute("SELECT bum FROM conversion WHERE unit = ?", (convert_to,))

    conversion_result = int(amount) * row_1[0]["bum"] * row_2[0]["bum"]**-1

    return render_template("length_converted.html", result = conversion_result )
sql python-3.x typeerror
1个回答
0
投票

结果我不得不给我们分号。以下作品。

row_1 = db.execute("SELECT bum FROM conversion WHERE unit = :id", id = 
request.form.get("unit_1"))
row_2 = db.execute("SELECT bum FROM conversion WHERE unit = :id", id = 
request.form.get("unit_2"))
© www.soinside.com 2019 - 2024. All rights reserved.