2012-07-25 8 views
11

私はPythonのデータでHTMLテンプレートを埋めたいと思っています。 HTMLはわかりませんが、私の同僚はHTMLテンプレートを用意していますが、私はデータを提供します。しかし、Pythonについてはほとんど知りません。PythonのシンプルなHTMLテンプレート

このHTMLとPythonの分離をうまく処理する非常に基本的なテンプレートフレームワークを提案できますか(つまり、HTMLではあまり特殊な構文ではなく、PythonデータコードでわかるHTMLはあまりありません)。理想的には、HTMLテンプレートは純粋なHTMLに非常に近いべきです。

私はHTMLのテーブルコードを用意する必要がない場合はテーブルをデータとして用意していますが、最小のマークアップロジックでテーブルを作成することもできます。 私の同僚がCSSなどのより高度な概念を適用しても理想的にはシステムが機能するはずです。

extensive listが見つかりましたが、技術的な言語がわからないため、どのシステムが自分の要件に最も近いのか判断することは本当に難しいです。

EDIT:私たちは初心者であり、基本的な解決策が必要です。:)私にとって理想的なHTMLはなく、プレーンなHTMLを超えています。

+1

ChameleonとZopeのページテンプレート(どちらも同じ属性言語を実装しています)はこれを提供します。明確な分離とブラウザではまだ動作していないテンプレートは未表示です。残念ながら、この種の質問はこのサイトのフォーマットに適合しません。[FAQ#dontask]を参照してください。このような質問は、あまりにも時代遅れの曖昧な回答につながる傾向があります。特定の問題についてお手伝いできる場合は、別の質問を投稿してください。 –

+0

説明をありがとう。完全な初心者のためにセットアップするのが容易であるという特定の要件は、誰もがすべての質問を読むことができれば、可能な回答を制限するべきである。私はそれを再構成する方法を知らない:( – Gerenuk

+1

また、 "Mako"と "Jinja2"を見てみることもできます。HTMLレンダラー以上のものが必要な場合は、Flaskを見てくださいジンジャとマコ) – javex

答えて

11

井戸djangoは非常に素敵なパワフルなテンプレートエンジンを持っています。その目的は、PythonロジックからHTMLを分離することです(しかし、これはあなたがdjangoを完全に使用する必要があるためテンプレート化したい場合は余計かもしれません)。

あなたのテンプレートが(なしループ)本当に簡単であれば、あなたは(私はいくつかのFortranコードに設定ファイルを生成したサイドプロジェクトでそれを使用し、それはそう悪くはなかった)ネイティブのpython string.format機能を使用する場合があります。

その他の選択肢はjinja2ですが、これは本当にdjangoテンプレートに近いですが、スタンドアロンで強力です。

+0

ありがとう。フォーマットは必要なシンプルさに対処しますが、Python側でHTMLテーブルマークアップを生成する必要があるため、単純すぎるかもしれません。それが私が最も簡単な解決策には進まなかった唯一の理由です。 – Gerenuk

+1

jinja2に行く。 –

2

web2pyもお勧めしますか?最も基本的なレベルでは、単純に同僚がhtmlファイルを作成して、データを{{var}}に置き換える必要がある場所をvarに置き換えることができます。これはPython関数で書かれたweb2pyコントローラによって取得できます。この関数から、データをまとめ、 "return dict(var = var)"というHTMLビューを返すことができます。

あなたのビューはこのように見えた場合:

<html> 
    <head> 
     <title>some title</title> 
    </head> 
    <body> 
     <h1>{{=message}}</h1> 
    </body> 
</html> 

コントローラは、次のようになります。あなたはまた、他には言及しているとして、ジャンゴを使用しますが、いくつかのweb2py documentation

のリンクをチェックすることができ

def index(): 
    message = "Hello World" 
    return dict(message=message) 

+0

OPがコントローラーを探しているなら(テンプレートエンジンだけでなく)、私は強くdj​​angoを使うことを勧めます。 –

関連する問題