我将如何呈现页面并转到特定的 id?
现在我有这个代码的以下功能:
@cherrypy.expose
@require
def page():
tmpl = lookup.get_template('page.html')
return tmpl.render()
但是,现在page.html
确实有几个子页面,我可以通过 URL 访问,例如mydomain.com/page#someid
.
有没有办法让模板直接进入id?
我将如何呈现页面并转到特定的 id?
现在我有这个代码的以下功能:
@cherrypy.expose
@require
def page():
tmpl = lookup.get_template('page.html')
return tmpl.render()
但是,现在page.html
确实有几个子页面,我可以通过 URL 访问,例如mydomain.com/page#someid
.
有没有办法让模板直接进入id?
我认为您正在混合这些想法,#
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());
});