Templates 来自多个文件的Mako
我有一个金字塔应用程序,有多个视图,每个视图取决于一个mako模板。这些视图非常复杂而且没有bug,所以我不想拆分或合并视图,更不想拆分或合并相应的模板 但是,我希望一个视图代表所有其他视图。合并所有棱锥视图和模板实际上不是一个选项 例如,我有一个登录视图和模板以及一个注册视图和模板。现在我希望我的根页面包含这两个元素。登录和注册都继承自base.mak,它包含常用脚本和样式表导入。以下是我想要的mako进口结构的图示Templates 来自多个文件的Mako,templates,inheritance,pyramid,mako,Templates,Inheritance,Pyramid,Mako,我有一个金字塔应用程序,有多个视图,每个视图取决于一个mako模板。这些视图非常复杂而且没有bug,所以我不想拆分或合并视图,更不想拆分或合并相应的模板 但是,我希望一个视图代表所有其他视图。合并所有棱锥视图和模板实际上不是一个选项 例如,我有一个登录视图和模板以及一个注册视图和模板。现在我希望我的根页面包含这两个元素。登录和注册都继承自base.mak,它包含常用脚本和样式表导入。以下是我想要的mako进口结构的图示 base.mak / \
base.mak
/ \
login.mak signup.mak
\ /
root.mak
或者,我尝试将它们链接起来:
基本->登录->注册->根目录
然而,我认为视图不再与各自的模板对话
当我做第三链(login.mak->signup)时,我的问题就出现了。我将在下面发布类似的代码并提取代码,因为我的完整代码有点长(如果需要更多的代码,请随意呼喊)
base.mak:
<!DOCTYPE HTML>
<html lang="en">
<head>
<meta charset="utf-8">
<title>
${next.title()}
</title>
#Imports
${next.head()}
</head>
<body>
<div id = "content">
${next.body()}
</div>
</body>
</html>
<%inherit file="base.mak"/>
<%def name="title()">
${next.title()}
</%def>
<%def name="head()">
${next.head()}
</%def>
<div id="login">
<div id="message">
${sMessage}
</div>
<div id="form">
<form action="${url}" method="post"> <--- url returned in views.py
...
</div>
${next.body()}
<%inherit file="login.mak"/>
<%def name="title()">
</%def>
<%def name="head()">
</%def>
<div id="box">
...
</div>
<%inherit file="base.mak"/>
<%def name="title()">
</%def>
<%def name="head()">
<link rel="stylesheet" type="text/css" href="${request.static_url(...
</%def>
<div id="login">
<div id=".....
</div>
${next.title()}
#进口
${next.head()}
${next.body()}
登录.mak:
<!DOCTYPE HTML>
<html lang="en">
<head>
<meta charset="utf-8">
<title>
${next.title()}
</title>
#Imports
${next.head()}
</head>
<body>
<div id = "content">
${next.body()}
</div>
</body>
</html>
<%inherit file="base.mak"/>
<%def name="title()">
${next.title()}
</%def>
<%def name="head()">
${next.head()}
</%def>
<div id="login">
<div id="message">
${sMessage}
</div>
<div id="form">
<form action="${url}" method="post"> <--- url returned in views.py
...
</div>
${next.body()}
<%inherit file="login.mak"/>
<%def name="title()">
</%def>
<%def name="head()">
</%def>
<div id="box">
...
</div>
<%inherit file="base.mak"/>
<%def name="title()">
</%def>
<%def name="head()">
<link rel="stylesheet" type="text/css" href="${request.static_url(...
</%def>
<div id="login">
<div id=".....
</div>
${next.title()}
${next.head()}
${sMessage}
好的,我知道了。必须使用mako的
,这样就没有复杂的继承结构。因此,现在我的文件如下所示:
root.mak
<%inherit file="base.mak"/>
<%def name="title()">
Welcome
</%def>
<%def name="head()">
</%def>
<%include file="login.mak"/>
<%include file="signup.mak"/>