为什么 SQLite 尝试使用表单条目作为列名?

Why is SQLite trying to use form entry as a column name?

我才编程几个月所以如果这很明显请原谅我。

我有一个使用 wtforms 构建的本地网站,我正在尝试做一些简单的事情,比如获取表单数据并将其添加到现有的本地数据库中。

我在测试表单时总是遇到错误。似乎 sqlite 正在尝试使用 form.field.data entry 作为列名。有人可以告诉我如何解决这个问题吗? 代码如下:

 if request.method == 'POST' and form.validate():

    name = form.Name.data
    street = form.StreetAddress.data
    city = form.City.data
    zipcode = str(form.Zip.data)
    bedroom = str(form.Bedroom.data)
    bathroom = str(form.Bathroom.data)
    sqFt = str(form.SqFt.data)
    price = str(form.Price.data)
    typeID = str(form.TypeID.data)
    imageLink = str(form.ImageLink.data)

    command = """INSERT INTO Rentals(ID,Name,StreetAddress,City,Zip,Bedroom,Bathroom,SqFt,PriceMonth,TypeID,ImageLink) 
    VALUES({e},{f},{g},{h},'{i}','{j}','{k}','{l}','{m}','{n}',{u})
    """.format(e=rental_id, f=name, g=street,h=city, i=zipcode, j=bedroom, k=bathroom, l=sqFt, m=price, n=typeID,u=imageLink)
    cursor.execute(command)
    conn.commit()

我得到的错误是:

cursor.execute(command)
sqlite3.OperationalError: no such column: x
127.0.0.1 - - [05/May/2017 08:28:52] "POST /rental_create HTTP/1.1" 500 -

x是我测试表格时输入的

这是我的第一个项目,在此之前我玩得很开心。我将不胜感激任何帮助。谢谢

最好使用这样的语法:

cursor.execute('INSERT INTO Log' \
               ' (tmstmp, typ, conid, tel, tel_pb, num_int, num_ext, dur, sip, finished)' \
               ' VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)', 
               (msg.tmstmp, msg.typ, msg.conid, msg.tel, msg.tel_pb, msg.num_int, msg.num_ext, msg.dur, msg.sip, msg.finished))

有关更多示例,请参阅 https://docs.python.org/2/library/sqlite3.html