2016-07-01 6 views
0

私はhtmlとpythonスクリプトを持っています。pythonスクリプトからHTMLにデータを挿入するにはどうすればよいですか?

私はpythonスクリプトの中でhtmlを呼び出し、それらを電子メールしています。

これは私のコードです:

# Build email message 
    import time 
    currentTime = time.ctime(); 
    reportmessage = urllib.urlopen(Report.reportHTMLPath + "reporturl.html").read() 
    //Code to send e-mail 

HTMLコード:

<div> 
<b> Time is: <% currentTime %> 
</div> 

しかし、それは動作していないようです。

PythonからHTMLに時間を挿入する方法を教えてもらえますか?それだけで時間ではない、私は(hrefなど)添付するいくつかの他のものがあります。

おかげで、

+0

チーターのようなテンプレートの注入を確認し、[http://www.cheetahtemplate.org/] – PepperoniPizza

+0

:ここ

は簡単な例です。私はcheetahtemplateへの感謝の@PepperoniPizzaをインポートする方法をチェックします – TechnoCorner

+0

私はチーターを持っていない..私はそれをどのようにインストールするのですか?私はここでかなり混乱しています。サンプルの例を提供できます – TechnoCorner

答えて

1

道を確保していない最も単純でstr.formatを使用することです:

>>> import time 
>>> currentTime = time.ctime() 
>>> 
>>> currentTime 
'Fri Jul 1 06:50:37 2016' 
>>> s = ''' 
<div> 
<b> Time is {}</b> 
</div>'''.format(currentTime) 
>>> 
>>> s 
'\n<div>\n<b> Time is Fri Jul 1 06:50:37 2016</b>\n</div>' 

しかし、それは、私はあなたにお勧めの方法はありませんが、私は強くあなたにお勧めするjinja2を使用することですテンプレートレンダリングエンジン。

ここ

はそれで動作するように簡単なコードです。だからここ

>>> import jinja2 
>>> import os 
>>> 
>>> template_dir = os.path.join(os.path.dirname(__file__), 'templates') 
>>> jinja_env = jinja2.Environment(loader = jinja2.FileSystemLoader(template_dir), 
           autoescape=True) 
>>> def render_str(self, template, **params): 
     t = jinja_env.get_template(template) 
     return t.render(params) 

あなたはCurrentTime.htmlと呼ばれ、たとえば、あなたのテンプレートを持っていますtemplatesと呼ばれる作業ディレクトリ、上のフォルダを作成する必要があります。

<div> 
<b> Time is {{ currentTime }}</b> 

そして、単に:

>>> import time 
>>> currentTime = time.ctime() 
>>> 
>>> render_str('CurrentTime.html', currentTime=currentTime) 
1

の場合あなたは挿入されるデータの大量を持って、テンプレートは良い選択になります。 テンプレートエンジンを実際に使用することをお考えの場合は、reは軽量ソリューションになります。私のpythonに非常に新しいです

>>> import re 
>>> html = ''' 
... <div> 
... <b> Time is: <% currentTime %> </b> 
... </div> 
... ''' 
>>> result = re.sub(r'<% currentTime %>', '11:06', html) 
>>> print(result) 

<div> 
<b> Time is: 11:06 </b> 
</div> 

>>> 
関連する問題