2

我使用 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()

4

2 回答 2

2

您可以使用许多 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。这是备忘单,或者您可以直接在网站文档上查看。


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

简而言之,如果您正在实现 function index,您可以返回一个字符串(整个页面 HTML,这似乎就是您要访问的内容),或者一个使用模板的字典。

在第一种情况下,只需像这样编写函数:

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

否则,在 views/ controller /index.html中编写一个 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)
于 2009-10-11T10:56:26.360 回答
0

只需将其添加/附加到rows.xml()返回的字符串:

html = '<html><head>...</head><body>' + rows.xml() + '</body></html>'
于 2009-10-11T10:44:45.013 回答