Параметры POST сервера бутылок из списка в базу данных SQL - PullRequest
0 голосов
/ 12 февраля 2019

В настоящее время у меня есть кнопка, которая при нажатии создает две переменные.Они содержат выбранные параметры из списка.Затем я пытаюсь разместить их в своей базе данных через скрипт бутылки, однако это не работает.Может кто-нибудь объяснить мне, почему?

Код HTML / JQuery для кнопки такой:

$("#btnStartEvent").bind("click", function () {
        var selectedStudents = $('#lstBox2 option:selected');
        var selectedEvent = $('#event_options option:selected');


        alert(selectedEvent); 
        $.post( "/send_data", { eventIDPost: selectedEvent},function(data ) { 
        alert( data ); 


});

И мой код бутылки, который обрабатывает этот POST:

@post('/send_data')
def send_data():
    postdata = request.body.read() 
    events_id = request.forms.get("eventIDPost") 
    sql = "INSERT INTO tblResults VALUES('{}')".format(events_id)
    run_sql(sql)

Ответы [ 2 ]

0 голосов
/ 13 февраля 2019

Я могу заверить вас, что @post не сломан.Я использую это каждый день.

from bottle import post, request

def merge_dicts(*args):
    result = {}
    for dictionary in args:
        result.update(dictionary)
    return result

@post('/send_data')
def send_data():
    return merge_dicts(dict(request.forms), dict(request.query.decode()))
0 голосов
/ 13 февраля 2019

Я не уверен, что бутылка @post разбита, но ссылается на

http://bottlepy.org/docs/dev/api.html#bottle.Bottle.route

и обновляет метод API ниже:

@app.route('/send_data', method=['POST'])
def send_data():

начал слушать вызовы API. В противном случае это была 405 ошибка

Также, пожалуйста, обращайтесь https://api.jquery.com/jquery.post/

$.post("/send_data", { "eventIDPost": 1 })
   .done( function (data) {console.log(data)});

Надеюсь, это поможет.

...