在Ajax调用中调用Python文件

时间:2015-11-20 21:22:19

标签: python angularjs ajax http flask

所以我已经建立了对angularjs应用程序的简单架构的相当不错的理解,调用$ http并发布到php页面,然后接收数据。

我想知道的是,如何使用python执行相同类型的功能。是否有可能让python行为相同,自包含脚本文件接受post数据和echo json回来?

$username = $_POST['username'];

在脚本开头输入变量赋值,并且:

echo json_encode(response);

键入响应。

我想为我公司的某些内部工具使用Python,因为它为远程运行PowerShell脚本提供了更好的库(因为这些工具都是linux托管的),并且整体上只有符合我需求的库。我很难找到如何设置这个问题的简明答案。

--- ------ EDIT

所以我使用以下信息设置了一个简单的例子。

角度:         var app = angular.module(" api");

app.controller("MainController", ["$scope","$http",MainController]);

function MainController($scope,$http){

    $http.post('/api',{test: "hello"})
        .then(function(response){
            console.log(response.data);
        })

}

烧瓶:     来自flask导入Flask,请求     导入json

app = Flask(__name__)


@app.route('/api', methods=['POST', 'GET'])
def api():
    if request.method == 'POST':
       request.data
    return 'You made it' # Just so I originally could see that the flask page                    

if __name__ == "__main__":
    app.run()

我获得了该网址的404。如果我改变角度来看看本地主机:5000 / api' (我的烧瓶应用程序正在运行),它给出了错误#34;不支持的URL类型"。

我看到当我做第一个案例时,它试图查看http://localhost/api,这是正确的!除了港口。这就是我尝试指定端口的原因。

有关下一步的任何建议吗?

1 个答案:

答案 0 :(得分:3)

使用烧瓶。

您可以将您的应用程序托管在烧瓶"服务器"并使用python处理返回您喜欢的内容。

http://flask.pocoo.org/

使用文档设置一条路线,您可以使用jquery或其他方式发布数据,然后在路线上可以执行python工作,并在需要时将JSON返回到角度应用程序。

 from flask import request   

 @app.route('/test', methods=['POST', 'GET'])
    def test():
        if request.method == 'POST':
            print request.data['your_field']

        return your_json_data