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

È stato utile?

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>'
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top