質問

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

役に立ちましたか?

解決

使用できる 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()

それ以外の場合は、views/ に HTML テンプレートを記述します。コントローラ/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)

他のヒント

ただ、前付加/リターンをrows.xml()文字列に追加します:

html = '<html><head>...</head><body>' + rows.xml() + '</body></html>'
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top