问题:在 Meteor 中调用 Python 脚本

让我的meteor应用程序调用与流星服务器端代码位于同一台机器上的python脚本的最佳方法是什么?我想要做的就是让meteor 将一个字符串传递给python 中的一个函数,然后让python 将一个字符串返回给meteor。

我在想我可以让 python 监控 mongodb 并提取值并将它们写回 mongodb 一旦计算出来,但是让流星直接在 python 中调用函数似乎更干净。

我是 DDP 的新手,无法使用 python-meteor 走得很远(https://github.com/hharnisc/python-meteor)。

ZeroRPC (http://zerorpc.dotcloud.com/) 是一个好方法吗?

谢谢。

解答

好问题。

我研究过使用 DDP 和 ZeroRPC,甚至让 Python 直接写入 Mongo。

对我来说,让 Meteor 和 Python 对话的最简单方法是将 python 脚本设置为烧瓶应用程序,然后将 API 添加到烧瓶应用程序并让 Meteor 通过 API 与 Python 对话。

为了使此设置正常工作,我使用了:

  • Flask API (https://flask-restful.readthedocs.org/en/0.3.1/quickstart.html#a-minimal-api)

  • Meteor HTTP 包 (http://docs.meteor.com/#/full/http_call)

要对其进行测试,您可以构建类似这样的基本内容(python 脚本将文本转换为大写):

from flask import Flask
from flask.ext import restful

app = Flask(__name__)
api = restful.Api(app)

class ParseText(restful.Resource):
    def get(self, text):
        output = text.upper()
        return output

api.add_resource(ParseText, '/<string:text>')

if __name__ == '__main__':
    app.run(debug=True) # debug=True is for testing to see if calls are working.

然后在 Meteor 中使用HTTP.get测试调用 API。

如果您在本地运行所有内容,那么来自 Meteor 的调用可能类似于:Meteor.http.get("http://127.0.0.1:5000/test");

Logo

MongoDB社区为您提供最前沿的新闻资讯和知识内容

更多推荐