我正在尝试通过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之外什么都不做呢
提前感谢!
答案 0 :(得分:1)
从weppy docs开始:
ajax helper异步调用url,传递字段输入的值,其名称等于列表中的一个名称,然后将响应存储在标记的innerHTML中,其id等于target。 第三个参数也可以是:eval字符串,它导致通过JavaScript评估服务器返回的字符串。
如果要使用该帮助程序对ajax请求使用任意值,则需要将其放在请求的URL中,但在此之前,您需要在路由上接受url variable:
@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');
});
请注意,weppy提供的ajax
帮助程序旨在用于呈现页面组件内的内容或生成要评估的javascript代码。
如果您需要向后端发送和获取任意数据,请考虑使用jQuery ajax方法和json数据。
答案 1 :(得分: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