首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >flask-mysql ProgrammingError:在字符串格式化过程中并非所有参数都已转换

flask-mysql ProgrammingError:在字符串格式化过程中并非所有参数都已转换
EN

Stack Overflow用户
提问于 2018-04-29 10:54:23
回答 1查看 38关注 0票数 0

我正在尝试用flask + mysql做一个简单的程序。我只是在POST中接收两个参数,并将其写入数据库:

代码语言:javascript
复制
@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)

问题是,当我试图从客户端发布数据时,我得到了:

代码语言:javascript
复制
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的输出,该输出看起来是正确的:

代码语言:javascript
复制
{
"lat": "3.2001",
"lng": "-11.45465"
}
EN

回答 1

Stack Overflow用户

发布于 2018-04-29 11:10:55

您需要使用%s或%(name)s参数样式指定变量,according to the docs

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

cur.execute('insert into locations(lat,lng) values (%s,%s)' % (_lat,_lng,))

应该行得通。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50082951

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档