Mysql 使用Flask从WTForms SelectField检索键值

Mysql 使用Flask从WTForms SelectField检索键值,mysql,python-3.x,flask,wtforms,Mysql,Python 3.x,Flask,Wtforms,我对Flask中的WTForms有问题,我想创建一个add_菜单函数,将菜单添加到数据库中。用户可以从SelectField中相应地选择“开胃菜”、“主菜”或“饮料”。因此,每当用户从SelectField中选择值时,它就会添加到数据库中相应的表中。(我使用MySQL)。由于某种原因,当我使用menu\u type=form.menu\u type.data时,它给出了以下错误 mysql_exceptions.ProgrammingError:(1064,“您的SQL语法有错误;请查看与mys

我对Flask中的WTForms有问题,我想创建一个add_菜单函数,将菜单添加到数据库中。用户可以从SelectField中相应地选择“开胃菜”、“主菜”或“饮料”。因此,每当用户从SelectField中选择值时,它就会添加到数据库中相应的表中。(我使用MySQL)。由于某种原因,当我使用
menu\u type=form.menu\u type.data
时,它给出了以下错误

mysql_exceptions.ProgrammingError:(1064,“您的SQL语法有错误;请查看与mysql服务器版本对应的手册,以了解在“主菜”(名称、配料、价格)值附近使用的正确语法('Salmon','p>duude,frv

,'35'),第1行) 它的值是正确的,但我在
main\u displays
字符串前面有一个笨拙的“”符号 我的代码如下所示:

类菜单(表单):
菜单类型=SelectField('menu type',[validators.DataRequired()],choices=[('apperizers','apperizer'),('main_disks','main disk'),('deserts','sarts'),('drinks','drinks'),concure=str)
name=StringField('name',[validators.Length(最小值=1,最大值=2000)])
成分=文本区域字段('成分',[validators.Length(min=10)])
price=DecimalField('price(Manat)'[validators.DataRequired()]))
@app.route('/add_menu',methods=['GET','POST'])
@是否已登录
def添加菜单():
表单=菜单表单(request.form)
如果request.method==“POST”和form.validate():

menu_type=form.menu_type.data#将表名替换为带引号的字符串,并以此执行查询

在绑定参数化值之前,您可能希望使用表名生成查询

query = "INSERT INTO {}(name,ingredients,price) VALUES(%s, %s, %s)".format(menu_type)
cur.execute(query, (name,ingredients,price))
query = "INSERT INTO {}(name,ingredients,price) VALUES(%s, %s, %s)".format(menu_type)
cur.execute(query, (name,ingredients,price))