Pergunta
Eu usei linhas.xml () para gerar saída HTML. Quero saber como adicionar códigos HTML a esta página HTML gerada, por exemplo: "Adicionar logotipo, vincular o arquivo 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()
Solução
Existem muitos ajudantes HTML que você pode usar, por exemplo:
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)))
e assim por diante.
Você pode até criar uma tabela inteira automaticamente:
table = SQLTABLE(rows, orderby=True, _width="100%")
e depois escolha -o para inserir links ou modificar seus elementos.
É muito poderoso e, normalmente, você não precisa se preocupar em escrever o HTML real. Aqui está a folha de trapaceiros, ou você pode verificar diretamente no Documentação do site.
EDIT: Apenas para ter certeza de que você realmente não precisa gerar toda a página HTML, é mais fácil deixar o web2py inserir sua resposta em um modelo com o mesmo nome que seu controlador (ou forçar um modelo específico com response.view = 'template.html'
. O tutorial de documentação explicará que melhor e em mais detalhes.
Em poucas palavras, se você estiver implementando a função index
, você pode retornar uma string (a página inteira HTML, que parece ser o que você está indo) ou um dicionário para usar modelos.
No primeiro caso, basta codificar sua função como esta:
def index():
# ... code to extract the rows
return HTML(BODY(B('Results:', rows.xml(), _class='results', _id=1))).xml()
Caso contrário, escreva um modelo HTML em visualizações/controlador/index.html (ou outro arquivo se você inserir o response.view=...
em sua função, para reutilizar o mesmo modelo), que pode ser assim:
<html><head></head>
<body>
{{=message}}
</body>
</html>
e devolver um dicionário:
def index():
# ... code to extract the rows
html = B('Results:', rows.xml(), _class='results', _id=1)
return dict(message=html)
Outras dicas
Basta prendê -lo/anexá -lo à string que rows.xml()
Retornos:
html = '<html><head>...</head><body>' + rows.xml() + '</body></html>'