如何接受JSON帖子?

2024-05-15 02:46:20 发布

您现在位置:Python中文网/ 问答频道 /正文

第一次在这里,它说的是具体的。。。这样就可以了。在

我正在做一个小项目来连接Salesforce和我的Raspberry Pi。我们的目标是在Salesforce中的客户收到一个高优先级的案例时,让一个灯(比如灯塔、警笛一样的灯)闪烁。目前,客户通常会向某个地址发送电子邮件,这就产生了一个案例。它进入“未分配队列”并向团队发送电子邮件,告知该案例正在等待分配。在

Salesforce使用REST,所以我需要能够让Pi接受JSON,这样它就可以很容易地理解Salesforce希望它做什么。在

目前,我想我已经赢了一半。我有一个运行在Pi上的web服务器(Lighttpd),它承载一个索引页和一个Python脚本。我还使用了Python包装器,它允许我从安装的Telldus程序轻松地运行命令。这个程序控制着我连接的USB射频发射器,它与射频插座配对,射频插座通过一个灯连接到主电源。在

所以Python脚本被称为电源.py,并且可以用URL变量控制,所以如果我转到power.py?device=1&power=on&time=10&password=hunter2打开设备1 10秒。我还在索引页上创建了一个POST表单,它只发布到python脚本,并以与使用URL变量相同的方式运行它。一切都很好。在

所以我要做的就是把它连接到Salesforce。我想使用REST和JSON,这样如果我从Salesforce转到另一个CRM程序,它将很容易地适应和接收来自新地方的指令。在

我在这里发布了我正在使用的Python脚本: https://github.com/7ewis/RemotePiControl/blob/master/power.py

Pi目前不允许离开本地网络,所以我需要开发一种方法来发送JSON命令,接收并使用正确的变量将其转换为工作。我不是程序员,我只是接触到了黑客攻击和探索的语言。所以我需要一些指导。在

我以前从未使用过REST或JSON,那么我需要做些什么来实现这一点呢?在


Tags: py命令程序脚本restjson客户电子邮件
2条回答

首先不要使用Python脚本将结果直接输出到CGI。你将永远调试它。在

使用像烧瓶一样的轻质框架。你可以做一些简单的事情

from flask import Flask

application = Flask(__name__)

@application.route('/', methods=['GET', 'POST'])
def index():
    if request.method == 'POST':
        # use Flask's build in json decoder
        the_data = request.get_json()
        # then do something with the data
        return "This was a POST request, how interesting..."
    else:
        # request was GET rather than POST, so do something with else
        return "Hello World!"

请参阅此处如何配置Flask以使用Lighttpd运行http://flask.pocoo.org/docs/deploying/fastcgi/

如果您想测试这一点,您可以编写另一个Python脚本来向服务器发送JSON数据(我建议您查看Python请求库中的http://www.python-requests.org/en/latest/),也可以使用HTTP请求生成器手动执行此操作,例如httprequesterforfirefox(https://addons.mozilla.org/en-US/firefox/addon/httprequester/

似乎将Flaskhttp://flask.pocoo.org添加到您的Raspberry Pi web服务器将是一个不错的举动。它允许运行服务器端python以响应jqueryajax(和常规)请求。这里有几个例子:

http://flask.pocoo.org/docs/patterns/jquery/

这个堆栈溢出问题:how can I use data posted from ajax in flask?

Flask的启动和运行非常简单,并且很乐意与许多服务器一起工作,包括Lighttpd。写RESTful flask也是一个非常合理的建议,参见:http://blog.miguelgrinberg.com/post/designing-a-restful-api-with-python-and-flask

另外,很多人已经在覆盆子皮上使用了烧瓶,这样可以帮助你顺利地起床和跑步:http://mattrichardson.com/Raspberry-Pi-Flask/

祝你好运!在

相关问题 更多 >

    热门问题