【问题标题】:Display Python output in HTML以 HTML 格式显示 Python 输出
【发布时间】:2013-05-06 16:16:01
【问题描述】:

在 HTML 中显示 Python ystockquote (http://goldb.org/ystockquote.html) 模块输出的最简单方法是什么?我正在创建一个 HTML 仪表板,它将在我的计算机上本地运行,并希望将库存输出结果插入指定的 HTML 占位符。我希望因为它是本地的,所以我可以避免许多 CGI 和服务器要求。

【问题讨论】:

    标签: python html output


    【解决方案1】:

    我会使用模板系统(请参阅the Python wiki article)。如果您没有任何特别的偏好,jinja 是一个不错的选择。这将允许您编写增加了变量、控制流等扩展的 HTML,从而大大简化了自动生成 HTML。

    您可以简单地将呈现的 HTML 写入文件并在浏览器中打开它,这样您就不需要网络服务器(尽管在包含 HTML 文档的目录中运行 python -m SimpleHTTPServer 会使它们在 http://localhost:8000 下可用)

    【讨论】:

      【解决方案2】:

      这是一个使用web.py 构建的简单服务器(我已经玩了一段时间了,所以这是一个有趣的问题)

      import web
      import ystockquote
      
      urls = (
          '/', 'index'
      )
      app = web.application(urls, globals())
      
      class index:
          def POST(self):
              history = ystockquote.get_historical_prices(web.input()['stock'], web.input()['start'], web.input()['end'])
              head = history[0]
              html = '<html><head><link href="//netdna.bootstrapcdn.com/twitter-bootstrap/2.3.1/css/bootstrap-combined.min.css" rel="stylesheet"><body><table class="table table-striped table-bordered table-hover"><thead><tr><th>{}<th>{}<th>{}<th>{}<th>{}<th>{}<th>{}<tbody>'.format(*head)
              for row in history[1:]:
                  html += "<tr><td>{}<td>{}<td>{}<td>{}<td>{}<td>{}<td>{}".format(*row)
              return html
      
          def GET(self):
              return """<html>
                        <head><link href='//netdna.bootstrapcdn.com/twitter-bootstrap/2.3.1/css/bootstrap-combined.min.css' rel='stylesheet'>
                        <body>
                        <form method='POST' action='/'><fieldset>
                          Symbol <input type='input' name='stock' value='GOOG'/><br/>
                          From <input type='input' name='start' value='20130101'/><br/>
                          To <input type='input' name='end' value='20130506'/><br/>
                          <input type='submit' class='btn'/></fieldset></form>"""
      
      if __name__ == "__main__":
          app.run()
      

      【讨论】:

      • 稍作修正以拉出标题行
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多