我正在忙于在python中编写一个简单的程序,它从串口获取信息并向用户显示这个图形。 (它基本上是一个连接到串口的电能表,python程序应该显示电压,电流和功率曲线。)
但是,我真的想让这个程序可以通过互联网访问(即:一台打开的是远程计算机上的网络浏览器,键入主机的IP地址和一些端口,你面临电压,电流和功率曲线)
我是python和整个面向对象编程语言的新手。我的大多数编程都是在C#中完成的。
是否有一种相对简单的方法将python程序“移植”到某种形式的Web可访问程序/脚本。可能将它与在主机上运行的Apache服务器结合使用?
对此的任何帮助将不胜感激。即使它只是指出我正确的方向。
非常感谢。
编辑:我现在一直在玩CGI和Apache,我发现可以在Apache中执行.py文件作为cgi-binaries。但是,当我尝试执行完整的python程序(包含Qt表单和许多按钮和组合框)时,页面一直保持加载状态,直到它显示服务器超时。这是因为我使用的是CGI而不是FastCGI?或者是否无法将Qt框架“移植”到HTML?我应该用HTML代码创建一个新的GUI框架吗?
非常感谢。
答案 0 :(得分:2)
最简单的方法(不损害机器的安全性)是python脚本使用matplotlib每分钟读取串行数据并创建几个图表,并将它们写入Web服务器可以放置的位置找到他们为例如PNG文件。
然后,您需要创建一个网页来显示图表。为安全起见,最好使静态页面引用脚本生成的PNG文件。也许放入一些javastript来获取页面periodically refresh itself。
最后但并非最不重要的是,您需要一个网络服务器。我建议nginx提供像这样的静态内容。
答案 1 :(得分:1)
有很多基于Python的Web开发框架,例如Django:https://www.djangoproject.com。您可以使用Django在Python中开发一个网站,并从其中一个视图调用您的脚本。您可以使用Apache部署Django项目:https://docs.djangoproject.com/en/1.2/howto/deployment/modwsgi/
答案 2 :(得分:0)
最简单的解决方案似乎是CGI http://docs.python.org/library/cgi.html和WSGI http://docs.python.org/library/wsgiref.html
但是,在这两种情况下,我都提醒您Web应用程序因其安全问题而闻名。当你是一个初学者时,你通常会打开许多安全漏洞,甚至没有注意到它......但是互联网上的坏人会注意到。我建议至少使用用户名/密码来保护页面。
答案 3 :(得分:-1)
如果您可以在Google App Engine中运行Python,为什么要运行和维护自己的网络服务器。它简单,免费且几乎100%可靠。 Google负责网络服务器,您只需要构建一个Python应用程序。 串行端口客户端可以将数据发送到您的App引擎应用程序。
以下是帮助您入门的教程:http://aleatory.clientsideweb.net/2012/08/16/financial-charts-app-engine-tutorial-web-scraping/
以下是向App引擎发送数据的Python示例:http://aleatory.clientsideweb.net/2012/08/16/financial-charts-app-engine-tutorial-web-scraping/