4

私は、いくつかのレポートを静的な html ファイルとして生成するために、迅速で汚い python スクリプトをハッキングしています。

Web アプリケーションのコンテキスト外で静的な html ファイルを簡単に構築するための良いモジュールは何でしょうか?

私の目標は、単純さ (HTML はそれほど複雑ではない) と使いやすさ (いくつかの HTML タグを出力するためだけに多くのコードを書きたくない) です。

最初のグーグル検索で2つの選択肢を見つけました:

また、テンプレート エンジンを使用するのはやり過ぎだと思いますが、違う場合はその理由と理由を教えてください。

他の推奨事項はありますか?

4

6 に答える 6

6

代わりにMarkdownを試して、その場で HTML に変換できますか?

于 2010-10-08T03:04:45.647 に答える
4

複雑なものは必ずしも必要ではありません。たとえば、機能的な方法で HTML を生成するための約 150 行のライブラリがあります。

http://github.com/Yelp/PushmasterApp/blob/master/pushmaster/taglib.py

(完全な開示、私は最初にそのバージョンを書いた人と協力しており、私自身もそれを使用しています。)

于 2010-10-08T03:12:21.070 に答える
3

なぜテンプレートエンジンは必然的にやり過ぎになるのでしょうか? テンプレート エンジンを使用するためだけに Web フレームワーク全体を必要とするわけではありません (少なくとも、ほとんどのテンプレート エンジンでは)。たとえば、 Makoはスタンドアロンで問題なく使用できます。私はよく html ファイル (データベースからのレポートなど) を生成するために使用します。

于 2010-10-08T10:02:46.063 に答える
2

単純な静的HTMLファイルがある場合。それなら、そのような文字列テンプレートを使用してみませんか。

import string

TEMPLATE_FORMAT = """
<html>
<head><title>Trial</title></head>
<body>
    <div class="myclass">$my_div_data</div>
</body>
"""
my_div_data = "some_data_to_display_in_HTML"
TEMPLATE    = string.Template(TEMPLATE_FORMAT)
html_data   = TEMPLATE.safe_substitute(my_div_data)
open("out.html", "w").write(html_data)

生成するのに大きすぎるHTMLファイルがない場合は、これを試してみてください。ライブラリを使用することにした場合に必要な学習を節約できます。

于 2010-10-08T18:44:26.500 に答える
2

ElementTreeは、いくつかの制限付きでhtmlを生成できます。私はそれを次のように書きます:

from xml.etree.ElementTree import ElementTree, Element, SubElement
import sys 

html = Element('html')

head = SubElement(html, 'head')
style = SubElement(head, 'link')
style.attrib = {'rel': 'stylesheet', 'href': 'style.css', 'type': 'text/css'}
body = SubElement(html, 'body')

para = SubElement(body, 'p')
para.text = 'Lorem ipsum sit amet'

doc = ElementTree(html)
doc.write(sys.stdout)

適度に複雑なhtmlの場合、いくつか例を挙げると、Jinja2、Mako、Cheetahなどのテンプレートエンジンを使用します。

于 2010-10-08T19:03:57.570 に答える
1

shpamlを見てみることをお勧めします

于 2010-10-08T16:52:58.977 に答える