在 Meteor 中调用 Python 脚本
问题:在 Meteor 中调用 Python 脚本 让我的meteor应用程序调用与流星服务器端代码位于同一台机器上的python脚本的最佳方法是什么?我想要做的就是让meteor 将一个字符串传递给python 中的一个函数,然后让python 将一个字符串返回给meteor。 我在想我可以让 python 监控 mongodb 并提取值并将它们写回 mongodb 一旦计算出来,但是让流星直接
问题:在 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");
更多推荐
所有评论(0)