从javascript将参数传递给python函数?

时间:2015-08-14 09:41:26

标签: javascript python parse-platform cloud-code

我正在尝试使用Parse Cloud Code来运行python脚本。我正在传递参数,但我似乎遇到了错误。我不是100%确定问题是什么,但似乎我没有正确地编写网址。任何帮助,将不胜感激。

我的python代码如下所示:

# a function that makes a sentence more exciting
def excited(sentence):
   return sentence + '!!!'

这是我在main.js中的代码:

Parse.Cloud.define('testFunction', function(request, response) {
    var someParam = request.params['testString'];
    var url = 'http://mywebsite.com/test.py/excited&sentence=' + someParam;
    Parse.Cloud.httpRequest({
        url: url,
        success: function(httpResponse) {
            console.log(httpResponse.headers);
            console.log(httpResponse.text);
            response.success();
        }, error: function(httpResponse, error) {
            console.error('Request failed with response code ' + httpResponse.status);
        }
    });
});

1 个答案:

答案 0 :(得分:0)

<强>编辑:

现在我更好地理解了这个问题。 您正在尝试从Parse.Cloud基于javascript的服务调用python方法。根据他们的教程,我想你可能想要反过来。

Parse.Cloud允许您在javascript中部署一些服务器端代码。然后,您可以使用python或curl或任何其他语言或工具从移动应用程序到服务器端点进行REST API调用。在测试时,你可以在你的盒子上调用python的终点。

所以你的服务器代码(在cloud / main.js中)应如下所示:

Parse.Cloud.define("testFunction", function(request, response) {
  var excitedSentence = request.params.testString + "!!!";
  response.success(excitedSentence);
});

此代码在https://api.parse.com/1/functions/testFunction

创建REST API端点

然后你可以使用python调用这个API端点(假设你的盒子上安装了Python):

import json,httplib
connection = httplib.HTTPSConnection('api.parse.com', 443)
connection.connect()
connection.request('POST', '/1/functions/testFunction', json.dumps({
       "testString": "This is an example sentence"
     }), {
       "X-Parse-Application-Id": "xxxxx_PUT_YOUR_ID_xxxxxxx",
       "X-Parse-REST-API-Key": "xxxxxxxx_YOUR_KEY_xxxxxx",
       "Content-Type": "application/json"
     })
result = json.loads(connection.getresponse().read())
print result

如果您没有安装python,可以通过转到在线仪表板来调用API端点。

  1. 转到:您的应用 - &gt;核心标签 - &gt; API控制台。
  2. 对于端点,选择post(这很重要),并指定&#34; functions / testFunction&#34;在文本框中。
  3. 在请求正文中,指定:{&#34; testString&#34; :&#34;这是一个例句&#34;}
  4. 点击&#34;发送请求&#34;你应该看到以下输出:

    "result": "This is an example sentence!!!"
    
  5. enter image description here