我是新来的,最近遇到了问题。我有一个基于Django的网站,我需要从javascript执行python脚本。我找到了一些答案,我怎么能达到这个目的:
test.py
def main():
return "Hello"
if __name__ == "__main__":
main()
的test.html
<div class="calc_range"></div>
test.js
$.ajax({
type: "POST",
url: "/static/devices/test.py",
success: function(o) {
$(".calc_range").html(o);
}
});
它看起来很简单,但它不起作用。在.calc_range
div中我只得到普通的python文本而不是“Hello”:
def main(): return "Hello" if __name__ == "__main__": main()
我读到这是服务器问题但是现在我只是使用Django开发服务器(runserver)。我希望它能够在开发和生产(Apache服务器)环境中工作。谁能帮我解决一下呢?
答案 0 :(得分:3)
你可以这样做。
1)在urls.py中添加一个新网址
2)在views.py
中添加此网址的视图3)编写一个函数来执行操作并在视图中调用它并将值作为json返回。
4)在ajax中调用此URL。
答案 1 :(得分:2)
这不是ajax应该如何工作的。您需要在views.py
文件中定义一个网址,其中包含var httpServ:HttpService = new HttpService();
httpServ.url ="http://localhost/samplewebservice/myPerson/insert";
httpServ.method = "POST";
httpService.contentType="application/json";
var header:Object=new Object();
header["Accept"] = "application/json";
httpService.headers = header;
var p:Object = new Object();
p.firstName = 'Mary';
p.lastName = 'Thomas';
p.gender = 'Female';
var params:Object=JSON.encode(p);
httpService.send(params);
中的相应视图。
在该视图中,您将调用您的函数。做一些比回报'你好'更重要的事情,最好用json编码。
然后,Ajax将调用该特定URL。如果您对我上面提出的建议感到不安,我会建议您浏览Django tutorial。
关于部署到Apache,这是一个很大的主题,主要也包含在Django docs中。