我目前有一个按钮,单击它时会创建两个变量。这些包含列表框中的选定选项。然后我试图通过瓶脚本将这些发布到我的数据库,但它不起作用。有人能解释一下为什么吗?
该按钮的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)
我不确定瓶子@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)});
希望这可以帮助。
我可以向你保证,@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()))