0

我目前在main_app的开头加载我的模板目录:

import blog
import jinja2
import os
import re
import registration
import webapp2
from string import letters

#   loads templates to make our life easier
template_dir = os.path.join(os.path.dirname(__file__), 'templates')
jinja_env = jinja2.Environment(loader = jinja2.FileSystemLoader(template_dir),
                               autoescape = True)

########    Main App Function   ########
app = webapp2.WSGIApplication([ ('/', blog.WelcomePage),
                                ('/blog/?', blog.BlogFront), 
                                ('/blog/([0-9]+)', blog.PostPage), 
                                ('/blog/newpost', blog.NewPost),
                                ('/register', registration.RegistrationPage)
                                ], 
                                debug=True)

但是,我显然需要在其他类中访问我的 HTML 文件,例如在registration.py中:

class Login(mainhandler.MainHandler):
    def get(self):
        self.render('login-form.html')

如果有一个地方可以放置一些代码:

 #  loads templates to make our life easier
    template_dir = os.path.join(os.path.dirname(__file__), 'templates')
    jinja_env = jinja2.Environment(loader = jinja2.FileSystemLoader(template_dir),
                                   autoescape = True)

允许这样做?

谢谢。

4

1 回答 1

0

您必须创建一个 basehandler 来完成所有渲染并使用 Python 继承以非常简单的方式访问该处理程序。

请参阅 Nick Johnson 的这篇文章:http: //blog.notdot.net/2011/11/Migrating-to-Python-2-7-part-2-Webapp-and-templates

于 2012-12-05T00:40:17.437 回答