2016-08-06 10 views
0

私はPythonでファイル名のリストを持っています。これをHTMLに渡したいと思います。 HTMLページは、リスト内の各ファイル名に対して異なるhrefリンクを持つ必要があります。私がリスト全体を渡すと、hrefリンクは再びリストになります(これは別のリンクをクリックすることを許可しません)。そして、forループを使ってリスト要素を1つずつ渡すと、別のHTMLとして表示されますページ。異なるHREFリンクのPythonリストの要素をHTMLに渡すにはどうすればよいですか?

編集:ここに私のコードです。 'docs'はファイル名のリストです。これは、 "Results"の後に最初のリンク、次に "Results"の後に2番目のリンクなどが表示されます。私はそれが "結果"を表示し、次にすべてのリンクを上下に表示したい。基本的には、ループは 'a href'部分のみにします。

def results(docs): 
template = """ 
<html> 
<head> 
    <title> Results </title> 
</head> 
<body> 
<a href="file://%s"> %s </a> 
</body> 
</html> 
""" 

html = "" 
for i in range(len(docs)): 
    html = '\n'.join([html, template % (docs[i], docs[i])]) 

return html 

PS:申し訳ありませんが、質問が不明である場合、それは私がstackoverflowの上で質問を投稿しています初めてです。

+0

私達にあなたのコードを表示します。テンプレートエンジンを使用していますか? – alecxe

+0

@alecxe:追加コード – VS17

答えて

0

実際にテンプレートエンジンMakoなど)を使用します。作業例:

from mako.template import Template 

def results(docs): 
    template = """ 
    <html> 
    <head> 
     <title> Results </title> 
    </head> 
    <body> 
    % for doc in docs: 
     <a href="file://${doc}"> ${doc} </a> 
    % endfor 
    </body> 
    </html> 
    """ 
    return Template(template).render(docs=docs) 

print(results(["link1", "link2"])) 

プリント:

<html> 
<head> 
    <title> Results </title> 
</head> 
<body> 
    <a href="file://link1"> link1 </a> 
    <a href="file://link2"> link2 </a> 
</body> 
</html> 
+0

テンプレートエンジンを使用せずにこれを行う方法はありますか? – VS17

+0

@ VS17確かに、あなたは 'format()'で "手動で"行うことができますが、申し訳ありませんが、私はテンプレートエンジンがこの場合の問題のツールだと思っています。 – alecxe

関連する問題