web2py - как внедрить html - PullRequest
       6

web2py - как внедрить html

2 голосов
/ 11 октября 2009

Я использовал rows.xml () для генерации вывода html. я хочу знать, как добавить html-коды на эту сгенерированную html-страницу, например: «добавить логотип, файл css ссылки и т. д.»

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

Ответы [ 2 ]

2 голосов
/ 11 октября 2009

Есть много помощников 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()

В противном случае напишите html-шаблон в views / controller / 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)
0 голосов
/ 11 октября 2009

Просто добавьте / добавьте его в строку, которую возвращает rows.xml():

html = '<html><head>...</head><body>' + rows.xml() + '</body></html>'
...