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

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()

有帮助吗?

解决方案

您可以使用许多 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'. 。文档教程将更好、更详细地解释这一点。

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

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

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

否则,在views/中编写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)

其他提示

它只是前面加上/追加到rows.xml()返回字符串:

html = '<html><head>...</head><body>' + rows.xml() + '</body></html>'
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top