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 动态嵌入页面特定部分的块,我可以考虑两种可能性:

一,使用来自不同子模板的不同 id 组合整页模板,如果您使用模板模块,如 mako ,这很容易并制作一个cherrypy处理程序来返回各个部分,这当然是假设您是控制页面内容和 id 不是动态的(从 db 或其他东西生成),主站点是一堆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>

或者二,使用 jQuery 选择器或类似的东西来请求页面一次并在返回的 html 中进行子选择。

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