2011-08-08 13 views
12

私はWikipediaのようなプロジェクトを扱っています。マークダウンを使ってテキストファイルをHTMLコードに変換できます。私の問題は、このhtmlコードをhtmlファイルでレンダリングしたいのです。ここに私のコードはweb.pyでのHTMLのレンダ

私はarticle_files.htmlにarticle_nameとbody(htmlコード)を渡しています。体は次のように見えます。

<h1>Hai</h1> 
<p>Welcome<em>Ajay</em></p> 

問題は本体がそのまま表示されます。つまり、htmlコードがすべてのタグ付きで画面に表示されます。私は、このhtmlコード(ボディ)をレンダリングするように、

ハイ
マイHTMLファイルがあるアジャイ

ようこそ:

$def with(title,content) 
<html> 
<head> 
<title>$title</title> 
</head> 
<body> 
    <form name="form" method="GET"> 
     $content 
    </form> 
</body> 
</html> 

答えて

11

HTMLのエスケープは、Webではデフォルトでオンになっています。 pyテンプレート。それをオフにするには、コロンと変数名を付加:

<form name="form" method="GET"> 
    $:content 
</form> 

あなたのエスケープされていないテンプレートに任意のHTMLを養うために、悪意のあるユーザーのための方法がないことを確認してください。

+0

おかげHelgi。コードは今とてもうまく動作します。 –

2

ブラウザに送信する日付のmime typeを指定する必要があります。それ以外の場合は、表示方法がわかりません。

あなたは、あなたの関数へfollowing lineを追加することによってこれを行うことができます。

web.header('Content-Type', 'text/html') 
+1

Ajayは、ページ全体ではなく、そのままの形で表現されている_body_(つまり、 'h1'と' p')について話しています。 – Helgi

+0

なぜdownvotesがわからないのですか?体がレンダリングされていない場合でも、これはまだ役立ちます。解決した私の問題、upvoted。 – sqram

関連する問題