我正在尝试使用webapp2&amp ;;将使用PHP完成的静态网站移植到Google App Engine Jinja2的。
我的PHP的index.php看起来像这样:
<body>
<div id="container">
<header id="header"><?php require_once DIR_HTML."header.phtml" ?></header>
<section id="main"><?php require_once DIR_HTML.$_GET['page'].".phtml" ?></section>
<footer id="footer"><?php require_once DIR_HTML."footer.phtml" ?></footer>
</div>
</body>
在我的google-app-engine代码中,我有这个:
import webapp2, jinja2, os
jinja_environment = jinja2.Environment(loader=jinja2.FileSystemLoader(os.path.dirname(__file__)))
class MainPage(webapp2.RequestHandler):
def get(self):
template_values = {
}
template = jinja_environment.get_template('index.html')
self.response.out.write(template.render(template_values))
class AboutPage(webapp2.RequestHandler):
def get(self):
template_values = {
}
template = jinja_environment.get_template('templates/about.html')
self.response.out.write(template.render(template_values))
app = webapp2.WSGIApplication([('/', MainPage), ('/about', AboutPage)], debug=True)
如何在Python中复制相同类型的功能?
答案 0 :(得分:2)
Jinja最强大的部分是模板继承。模板继承允许您构建一个基础“框架”模板,其中包含您网站的所有常见元素,并定义子模板可以覆盖的块。
<!DOCTYPE html>
<html lang="en">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
{% block head %}
<link rel="stylesheet" href="style.css" />
<title>{% block title %}{% endblock %} - My Webpage</title>
{% endblock %}
</head>
<body>
<div id="content">{% block content %}{% endblock %}</div>
<div id="footer">
{% block footer %}
© Copyright 2008 by <a href="http://domain.invalid/">you</a>.
{% endblock %}
</div>
</body>