0

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

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

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

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

谁能指出我正确的方向

4

3 回答 3

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>.

这有意义吗?

于 2012-09-09T10:21:17.377 回答
1

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

于 2012-09-09T10:50:43.943 回答
0

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

然后你需要为你的硬件编写一些脚本,你可以将它与你的网络应用程序集成。

于 2012-09-09T10:32:42.280 回答