Domanda
ho usato rows.xml () per generare l'output HTML. voglio sapere come aggiungere codici HTML a questa pagina html generato per esempio: "aggiungere il logo, link file 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()
Soluzione
Ci sono molti aiutanti HTML è possibile utilizzare, ad esempio:
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 così via.
È anche possibile creare automaticamente una intera tabella:
table = SQLTABLE(rows, orderby=True, _width="100%")
e poi scegliere lo distingue inserire link o modificare i suoi elementi.
E 'molto potente e normalmente non è necessario preoccuparsi di scrivere l'attuale codice HTML da soli. Ecco il bigino , oppure si può verificare direttamente sul documentazione sito .
Edit: Giusto per fare in modo, in realtà non c'è bisogno per generare l'intera pagina HTML, è più facile lasciare che web2py inserire la vostra risposta in un modello che ha lo stesso nome come il controller (o forzare un particolare modello con response.view = 'template.html'
. Il tutorial documentazione sarà spiegare che meglio e in ulteriori dettagli.
In poche parole, se si implementa la funzione index
, si potrebbe o restituire una stringa (l'intera pagina HTML, che sembra essere quello che ci si sta muovendo per), o un dizionario per utilizzare i modelli.
Nel primo caso, proprio codice la funzione in questo modo:
def index():
# ... code to extract the rows
return HTML(BODY(B('Results:', rows.xml(), _class='results', _id=1))).xml()
In caso contrario, scrivere un modello HTML in vista / di controllo /index.html (o un altro file se si inserisce il response.view=...
nella funzione, di ri-utilizzare lo stesso modello), che potrebbe essere come in questo modo:
<html><head></head>
<body>
{{=message}}
</body>
</html>
e restituire un dizionario:
def index():
# ... code to extract the rows
html = B('Results:', rows.xml(), _class='results', _id=1)
return dict(message=html)
Altri suggerimenti
Basta anteporre / aggiungerlo alla stringa che rows.xml()
restituisce:
html = '<html><head>...</head><body>' + rows.xml() + '</body></html>'