代码之家  ›  专栏  ›  技术社区  ›  Neveen

web2py-如何插入HTML

  •  2
  • Neveen  · 技术社区  · 16 年前

    我使用rows.xml()生成HTML输出。我想知道如何向生成的HTML页面添加HTML代码,例如:“添加徽标,链接CSS文件”。等等”

    rows=db(db.member.membership_id==request.args[0]).select(db.member.membership_id ,db.member.first_name,db.member.middle_name ,db.member.last_name) return rows.xml()

    2 回复  |  直到 16 年前
        1
  •  2
  •   RedGlyph sumit sonawane    16 年前

    您可以使用许多HTML帮助程序,例如:

    html_code = A('<click>', rows.xml(), _href='http://mylink')
    html_code = B('Results:', rows.xml(), _class='results', _id=1)
    html_page = HTML(BODY(B('Results:', rows.xml(), _class='results', _id=1)))
    

    等等。

    甚至可以自动创建整个表:

    table = SQLTABLE(rows, orderby=True, _width="100%")
    

    然后将其分离以插入链接或修改其元素。

    它非常强大,通常您不必自己编写实际的HTML。 Here is the cheatsheet 或者您可以直接在 website documentation .


    编辑:为了确保您实际上不需要生成整个HTML页面,更容易让web2将您的响应插入到与控制器同名的模板中(或强制使用特定模板 response.view = 'template.html' . 文档教程将更好地详细解释这一点。

    简言之,如果您正在实现该函数 index 您可以返回一个字符串(整页HTML,这似乎是您要查找的内容),也可以返回一个使用模板的字典。

    在第一种情况下,只需对函数进行如下编码:

    def index():
        # ... code to extract the rows
        return HTML(BODY(B('Results:', rows.xml(), _class='results', _id=1))).xml()
    

    否则,在视图中编写HTML模板/ 控制器 /index.html(如果插入 response.view=... 在您的函数中,要重新使用相同的模板),可能如下所示:

    <html><head></head>
      <body>
        {{=message}}
      </body>
    </html>
    

    并返回字典:

    def index():
        # ... code to extract the rows
        html = B('Results:', rows.xml(), _class='results', _id=1)
        return dict(message=html)
    
        2
  •  0
  •   Aaron Digulla    16 年前

    只需在 rows.xml() 返回:

    html = '<html><head>...</head><body>' + rows.xml() + '</body></html>'