0

ページをレンダリングして特定の ID に移動するにはどうすればよいですか?

今、私はこのコードで次の関数を持っています:

@cherrypy.expose
@require
def page():
    tmpl = lookup.get_template('page.html')
    return tmpl.render()

ただし、 にpage.htmlはいくつかのサブページがあり、 のような URL からアクセスできますmydomain.com/page#someid

テンプレートをレンダリングしてIDに直接移動する方法はありますか?

4

1 に答える 1

1

あなたはアイデアを混ぜていると思い#ます.URLの一部は、特定の要素IDに焦点を当てるクライアントの義務です. それにもかかわらず、JavaScript を使用してページの特定の部分のチャンクを動的に埋め込むためにそれを行いたいと思います。2 つの可能性を考えることができます。

1 つ目は、さまざまなサブテンプレートからのさまざまな id を使用してフル ページ テンプレートを構成します。これは、 makoなどのテンプレート モジュールを使用している場合は簡単で、cherrypy ハンドラーを作成して個々のパーツを返します。これはもちろん、あなたがページのコンテンツを制御し、ID は動的ではなく (データベースなどから生成されます)、メイン サイトはincludes.

@cherrypy.expose
def page_part(section):
    tpl_name = 'page_%s.html' % section
    # validate that the template exists, then:
    tmpl = lookup.get_template(tpl_name)
    return tmpl.render()

Mako テンプレート:

page.html:

<html>
  <body>
     <div id="main">
          This is the main content of the site!
      </div>
      <h4>Sections</h4> 
      <div id="section_1">
       <%include file="page_section1.html" />
      </div>

      <div id="section_2">
       <%include file="page_section2.html" />
      </div>
 </body>
</html>

page_section1.html:

<p> Content of section 1</p>

page_section2.html:

<p> Content of section 2</p>

または 2 つ、jQuery セレクターなどを使用してページを 1 回要求し、返された html でサブ選択を行います。

$.get('/page.html', 
      function(data){
          $('#this_page_id').html($('#sect_in_other_page', $(data)).html());
      });
于 2013-03-13T10:22:18.380 に答える