0

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

4

2 回答 2

3

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

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

于 2013-05-06T16:18:36.887 回答
0

这是一个使用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()
于 2013-05-06T17:06:00.673 回答