在HTML中显示Python值
我该如何在HTML中显示一个Python变量的值(在这个例子中,它是我实体类的键)?
from google.appengine.ext import db
class Entity(db.Expando):
pass
e = Entity()
e.put() # id is assigned
k = e.key() # key is complete
id = k.id() # system assigned id
html='''
<html>
<head></head>
<body>
<label>Key: %(k) </label>
<br>
</body>
</html>
'''
3 个回答
3
我对谷歌应用引擎了解不多,但在Python中,有两种方法:
html='''
<html>
<head></head>
<body>
<label>Key: %(k)s </label>
<br>
</body>
</html>
''' % locals() # Substitude %(k)s for your variable k
第二种:
html='''
<html>
<head></head>
<body>
<label>Key: {0[k]} </label>
<br>
</body>
</html>
'''.format(locals())
其实还有第三种方法,我更喜欢这种,因为它更明确:
html='''
<html>
<head></head>
<body>
<label>Key: {0} </label>
<br>
</body>
</html>
'''.format(k)
5
from google.appengine.ext import db
import cgi
class Entity(db.Expando):
pass
e = Entity()
e.put() # id is assigned
k = e.key() # key is complete
id = k.id() # system assigned id
html="""
<html>
<head></head>
<body>
<label>Key: %s </label>
<br>
</body>
</html>""" % (cgi.escape(k))
我真的建议你使用模板,这样会让你的生活轻松很多。
使用模板后,你的解决方案大概会是这样的:
class Entity(db.Expando):
pass
e = Entity()
e.put() # id is assigned
k = e.key() # key is complete
id = k.id() # system assigned id
template = jinja_environment.get_template('templates/myTemplate')
self.response.write(template.render({'key_val':k}))
而Mytemplate.html文件的内容会是这样的:
<html>
<head></head>
<body>
<label>{{key_val}}</label>
<br>
</body>
</html>