Frage

Ich habe Zeilen verwendet.xml (), um die HTML -Ausgabe zu generieren. Ich möchte wissen, wie Sie HTML -Codes zu dieser generierten HTML -Seite hinzufügen, z.

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

War es hilfreich?

Lösung

Es gibt viele HTML -Helfer, die Sie verwenden können, zum Beispiel:

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

usw.

Sie können sogar automatisch eine ganze Tabelle erstellen:

table = SQLTABLE(rows, orderby=True, _width="100%")

und wählen Sie es dann auseinander, um Links einzufügen oder seine Elemente zu ändern.

Es ist sehr mächtig und normalerweise müssen Sie sich nicht die Mühe machen, die tatsächliche HTML selbst zu schreiben. Hier ist das Cheatsblatt, oder Sie können direkt auf dem überprüfen Website -Dokumentation.


Bearbeiten: Nur um sicherzustellen, dass Sie die gesamte HTML -Seite nicht generieren müssen. Es ist einfacher, Web2Py Ihre Antwort in eine Vorlage einfügen zu lassen, die denselben Namen wie Ihr Controller hat (oder eine bestimmte Vorlage mit erzwingen response.view = 'template.html'. Das Dokumentations -Tutorial erklärt dies besser und weiter.

In einigen Worten, wenn Sie die Funktion implementieren index, Sie könnten entweder eine Zeichenfolge zurückgeben (die gesamte Seite HTML, die das zu sein scheint, wofür Sie gehen) oder ein Wörterbuch, um Vorlagen zu verwenden.

Codieren Sie im ersten Fall einfach Ihre Funktion wie folgt:

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

Schreiben Sie ansonsten eine HTML -Vorlage in Ansichten/Regler/Idex.html (oder eine andere Datei, wenn Sie die einfügen response.view=... in Ihrer Funktion, um dieselbe Vorlage wieder zu verwenden), was wie folgt sein könnte:

<html><head></head>
  <body>
    {{=message}}
  </body>
</html>

und geben Sie ein Wörterbuch zurück:

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

Andere Tipps

Bereiten Sie es einfach an die Zeichenfolge vor/fügen Sie es an, die rows.xml() kehrt zurück:

html = '<html><head>...</head><body>' + rows.xml() + '</body></html>'
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top