Python http服务器交互

时间:2012-09-09 09:37:58

标签: python http

我有一个项目,我正在整理它到目前为止运作良好。

但我有点迷失在哪里开始python明智。这些项目的基础是一个由Arduino通过无线链路(已经设置)控制的照明系统,它通过xBee网络上的串行接收来自python程序的命令(这部分是编码和工作的)。我希望这个项目可以在互联网上控制。

我正在考虑运行它,以便python程序运行一个相当容易设置的http服务器。

这是我遇到麻烦的地方,因为我过去没有玩过python。如何根据页面上点击的内容让程序响应请求并运行代码?

任何人都可以指出我正确的方向

3 个答案:

答案 0 :(得分:4)

您可以使用Tornado等框架编写服务器应用程序,以侦听任意端口上的消息。

然而,听起来您想构建一个Web界面。为此,您应该选择一个Web框架。我最喜欢的微框架是Flask。我刚刚联系的快速入门显示了让一个简单的网站运行是多么容易。

然后,您将为用户界面中的每个操作编写一个函数。当用户单击访问相关URL的链接(或按钮)时,将激活这些功能中的每一个。

@app.route('/')
def index():
    return render_template('index.html')

@app.route('/dim_lights/<room>')
def dim_lights(**kwargs):
    dim_lights_for_room(kwargs['room'])

'index.html'模板将包含<a href="/dim_lights/lounge">Dim the Lights in the Lounge</a>.

等链接

这有意义吗?

答案 1 :(得分:1)

如果您在单个python应用程序中使用串行端口和Web应用程序,那么我会使用twisted。它的事件循环处理串行端口以及Web请求等....它也是各种各样的框架。大多数其他“框架”不支持串行端口(作为事件循环的一部分 - 即接收数据的回调)。 http://twistedmatrix.com/trac/

答案 2 :(得分:0)

如果您尝试创建与项目链接的基于Web的应用程序,则可以尝试使用Flask作为框架,并可能使用Gunicorn作为http服务器。阅读Flask文档以更好地了解Flask。该站点上有一个python web开发人员新手教程。

然后,您需要为您的硬件编写一些脚本,并将其与您的Web应用程序集成。