0

我正在尝试通过 ajax 向我的 weppy 后端发送一个 ID 号,我已经尝试了尽可能多的事情,但我确信我只是不明白该怎么做。

我在点击时从我的 HTML 页面收集了一个 id,现在想将它发送到服务器脚本我的 ajax 看起来像

$(.testclick).click(function(e){
  var idnum = e.target.id;
  ajax("{{=url('post')}}", [], ':eval');
});

我曾尝试在多个地方包含 idnum 变量,希望在没有这种运气的情况下弄清楚

发布功能看起来像

@app.route()
def post(idnum):
  idnum = idnum
  print(idnum)
  return

现在我只是想让它工作它实际上并没有做任何事情,只是打印到控制台 atm

提前致谢!

4

2 回答 2

1

weppy docs 开始

ajax 助手异步调用 url,传递名称等于列表中名称之一的字段输入的值,然后将响应存储在其 id 等于 target 的标签的 innerHTML 中。第三个参数也可以是 :eval 字符串,它通过 JavaScript 对服务器返回的字符串进行评估。

如果您想使用该助手对 ajax 请求使用任意值,则需要将其放入请求的 url,但在此之前,您需要在路由上接受url 变量:

@app.route('/click/<str:element_id>')
def click(element_id):
    return 'alert("clicked on ' + element_id + '");'

然后在html方面:

$(".testclick").click(function(e){
    ajax("{{=url('click')}}/" + e.target.id, [], ':eval');
});

请注意,ajaxweppy 提供的帮助程序旨在用于在页面组件内呈现内容或生成要评估的 javascript 代码。

如果您需要向后端发送和获取任意数据,请考虑改用 jQuery ajax 方法和 json 数据。

于 2017-02-05T15:21:52.853 回答
0

为了从 javascript 运行 python 脚本,您可以使用 CGI。这是javascript代码:

$(.testclick).click(function(e){
var reqobj;
reqobj = {idnum: e.target.id}

// AJAX
var response = $.ajax({
type: "POST",
url: "/script/sample.py",
data: reqobj

});
}

Python 脚本 (sample.py):

import cgi, cgitb
data= cgi.FieldStorage()

# Get data from fields
input = data["idnum"]

print(input)

要让这两个脚本正常工作,您需要有一个 Web 服务器并将其配置为执行 python 脚本。这是[链接] https://www.linux.com/blog/configuring-apache2-run-python-scripts

于 2017-01-22T09:18:53.010 回答