Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python flask mysql编程错误:在字符串格式化期间未转换所有参数_Python_Mysql_Flask - Fatal编程技术网

Python flask mysql编程错误:在字符串格式化期间未转换所有参数

Python flask mysql编程错误:在字符串格式化期间未转换所有参数,python,mysql,flask,Python,Mysql,Flask,我正在尝试使用flask+mysql制作一个简单的程序。 我只是在帖子中收到两个参数,并将其写入数据库: @app.route('/upd',methods=['POST']) def upd(): _lat = request.form['lat'] _lng = request.form['lng'] cur = mysql.connection.cursor() cur.execute('insert into locations(lat,lng) values

我正在尝试使用flask+mysql制作一个简单的程序。 我只是在帖子中收到两个参数,并将其写入数据库:

@app.route('/upd',methods=['POST'])
def upd():
   _lat = request.form['lat']
   _lng = request.form['lng']

   cur = mysql.connection.cursor()
   cur.execute('insert into locations(lat,lng) values (?,?)',(_lat,_lng,))
   cur.commit()

   return jsonify(request.form)
问题是,当我试图从客户端发布数据时,我得到:

ProgrammingError: not all arguments converted during string formatting
127.0.0.1 - - [28/Apr/2018 23:46:14] "POST /upd HTTP/1.1" 500 -
如果我对SQL语句进行注释,客户端将收到jsonify的输出,该输出看起来是正确的:

{
"lat": "3.2001",
"lng": "-11.45465"
}

您需要使用%s或%(名称)s参数样式指定变量:

元组或字典参数中的参数绑定到操作中的变量。使用%s或%(名称)s参数样式(即使用format或pyformat样式)指定变量

cur.execute('插入位置(纬度,液化天然气)值(%s,%s)%(\u纬度,\u液化天然气,))


应该可以工作。

MySQL使用printf样式的占位符进行查询,所以您需要替换?使用%s%s。