2012-12-04 1 views
0

В настоящее время я загрузить мой каталог шаблонов в начале main_app:Загрузка jinja2 Справочник для всего приложения

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-файлов в других классах, например, в регистрации .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) 

, чтобы учесть это?

Спасибо.

ответ

0

Вы должны создать базовый манипулятор, чтобы сделать весь рендеринг и использовать наследование Python, чтобы получить доступ к обработчику очень простым способом.

Смотрите эту статью Ник Джонсон: http://blog.notdot.net/2011/11/Migrating-to-Python-2-7-part-2-Webapp-and-templates

+0

Спасибо человеку, Python является совершенно новым для меня. Я не уверен, что мне нравится все доверие к пробелам ... –

Смежные вопросы