Ajax调用的Python脚本,由Django服务器执行

时间:2015-05-26 11:14:27

标签: javascript python ajax django

我是新来的,最近遇到了问题。我有一个基于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服务器)环境中工作。谁能帮我解决一下呢?

2 个答案:

答案 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中。