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)

ただし、 registration.pyなどの他のクラスのHTMLファイルにアクセスする必要があることは明らかです。

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

コードを配置できる場所が1つある場合:

 #  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

すべてのレンダリングを実行するベースハンドラーを作成し、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 に答える