flask-mysql ProgrammingError: не все аргументы преобразованы во время форматирования строки - PullRequest
0 голосов
/ 29 апреля 2018

Я пытаюсь сделать простую программу с использованием flask + mysql. Я просто получаю два аргумента в POST и записываю в базу данных:

@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"
}

1 Ответ

0 голосов
/ 29 апреля 2018

Вам необходимо указать переменные, используя стиль параметра% s или% (name) s, в соответствии с документами :

Параметры, найденные в параметрах кортежа или словаря, связаны с переменными в операции. Укажите переменные, используя стиль параметра% s или% (name) s (то есть, используя формат или стиль pyformat).

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

должно работать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...