- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我买了这个温度传感器记录仪套件:http://quozl.netrek.org/ts/ 。它与提供的 C 代码配合得很好,我喜欢使用 python,因为它简单,所以我用 python 编写了一个脚本来显示微 Controller 的输出。我的套件上只连接了一个温度传感器。我希望温度显示在网页上,但似乎无法弄清楚,我很确定它与具有\r\n DOS EOL 字符和 linux web 的微 Controller 的输出有关服务器无法正确解释它。我的书上说“根据您使用的 Web 服务器,您可能需要进行配置更改以了解如何提供 CGI 文件”。我正在使用 debian 和 apache2,基本的 cgi 脚本工作正常。
这是我的代码,用于将传感器显示到控制台(效果很好):
import serial
ser = serial.Serial('/dev/ttyS0', 2400)
while 1:
result = ser.readline()
if result:
print result
这是我有效的 test.cgi 脚本:
#!/usr/bin/python
print "Content-type: text/html\n"
print "<title>CGI Text</title>\n"
print "<h1>cgi works!</h1>"
这是我开始显示温度的 cgi 脚本(不起作用 - 500 内部服务器错误):
#!/usr/bin/python
import sys, serial
sys.stderr = sys.stdout
ser = serial.Serial('/dev/ttyS0', 2400)
print "Content-type: text/html\n"
print """
<title>Real Time Temperature</title>
<h1>Real Time Temperature:</h1>
"""
#result = ser.readline()
#if result:
print ser.readline()
如果我在控制台中运行 python rtt.cgi,它会输出正确的 html 和温度,我知道这不是实时的,并且每次用户想要查看温度时都必须重新加载页面,但是这些东西将来会出现。从我的 apache2 错误日志中可以看出:脚本中的标题格式错误。错误 header =文件“/usr/lib/cgi-bin/rtt.c: rtt.cgi
最佳答案
我猜测您的 CGI 运行所在的执行上下文无法完成 read()
从串行端口。
顺便说一句,Python 标准库有比您在这里所做的更好的方法来编写 CGI 脚本;甚至基本的字符串处理也提供了一种更好的方法将结果插入 HTML(假设您的代码具有 read()
它们的必要权限)。
至少我会推荐类似的东西:
#!/usr/bin/python
import sys, serial
sys.stderr = sys.stdout
ser = serial.Serial('/dev/ttyS0', 2400)
html = """Content-type: text/html
<html><head><title>Real Time Temperature</title></head><body>
<h1>Real Time Temperature:</h1>
<p>%s</p>
</body></html>
""" % ser.readline() # should be cgi.escape(ser.readline())!
ser.close()
sys.exit(0)
请注意,我们只是对 ser.readline()
的结果进行插值使用% 字符串运算符。 (顺便说一句,您的 HTML 缺少 <html>, <head>
、 <body>
和 <p>
(段落)标签)。
这仍然存在问题。例如,我们至少应该导入 cgi
将外部数据包装在其中,以确保 HTML 实体正确替换任何保留字符等)。
我建议进一步阅读:[Python 文档]:http://docs.python.org/library/cgi.html
关于python - microcrontroller 输出到 python cgi 脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1291624/
我买了这个温度传感器记录仪套件:http://quozl.netrek.org/ts/ 。它与提供的 C 代码配合得很好,我喜欢使用 python,因为它简单,所以我用 python 编写了一个脚本来
我是一名优秀的程序员,十分优秀!