将数据从python脚本传递到HTML

时间:2014-05-30 17:18:31

标签: python html

此时我有一个运行在树莓派上的python脚本,它会生成数据。我想把这些数据放在网页上。

我在pi上安装了一个apache webserver,只是将生成的数据放在index.html

f = open("/var/www/index.html" ,"a")
    f.write("<p>'%s'</p>" % (Y))
    f.close()

缺点是我经常需要刷新浏览器以查看数据是否发生了变化。

有更好的方法吗?我看过广告AJAX和PHP,但我找不到从脚本传递数据的方法。

2 个答案:

答案 0 :(得分:1)

请参阅Flask,我一直在使用webapps。您还可以查看Flask Frozen,它可以让您使用Apache来提供内容,但在创建内容时您可以获得Flask的所有功能。

更具体地说,对于您的确切用例:

from flask import Flask
app = Flask(__name__)
data_loader = lambda: range(10) # this function should load your data from some external store
@app.route("/")
def main():
    body = "\n".join(["<p>%s</p>" % datum for datum in data_loader()])
    page = """<html><body>%s
              <script>setTimeout(function(){
                 window.location.reload(1);
            }, 5000);</script></body></html>""" % body
    return page


if __name__ == "__main__":
    app.run()

答案 1 :(得分:0)

您可以使用轻型框架编写一个小型WSGI应用程序,但这可能对您的目的而言过度。需要对项目进行最小更改的快速而简单的方法是使用CGI模块并在Apache中启用CGI处理处理。使用您的示例:

import cgi
print "<p>'%s'</p>" % (Y)

您需要configure Apache to enable CGI

CGI下的Python比WSGI慢,因为整个运行时必须启动,解析脚本并处理请求; WSGI是一个正在运行的进程。尝试CGI方法;如果它太慢,请花一些时间将您的应用重写为WSGI应用程序。