在HTML中显示Python值

3 投票
3 回答
3386 浏览
提问于 2025-04-17 19:13

我该如何在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 个回答

1

你可以先看看下面这个基本的 Django 模板:

<label>Key: {{k}} </label>

可以参考这个链接,了解如何开始使用模板:

开始使用模板

然后你也可以了解一下 jinja2 模板:

jinja2 模板

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>

撰写回答