题
我使用 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>'