部署到Google App Engine站点时的TemplateNotFound

时间:2013-02-22 01:21:09

标签: google-app-engine jinja2

更新时间:2月22日 Per Lipis的要求。我添加了代码来呈现模板。

我在我的网站上开发了一个管理部分,在我的本地环境中工作正常(localhost:8080)。当我将应用程序部署到我的appengine网站时,当我导航到 http:// myapp / myadmin / 时,我会收到TemplateNotFound错误,该文件应该在admin目录中找到default.html文件。 html文件位于templates \ admin目录下。

我的模板的文件结构是:

--app
  --templates
    --admin
          -default.html 
    -file.html
    -file1.html
    -file2.html

我使用以下代码创建Jinja环境:

FolderPath = os.path.dirname(os.path.dirname(__file__))
jinja_environment = jinja2.Environment(
    loader=jinja2.FileSystemLoader(
        [
            os.path.join(FolderPath,"templates\\admin"),
            os.path.join(FolderPath,"templates")
        ]
    )
)

已更新 - 模板渲染代码:

template_values = {}

template = jinja_environment.get_template('default.html')
self.response.out.write(template.render(template_values))

我假设其“FolderPath”变量导致问题,但不是100%肯定。有没有人遇到这个问题?

  • 语言:python 2.7
  • 操作系统:Windows 7
  • IDE:PyCharms 2.7

错误:

  

default.html Traceback(最近一次调用最后一次):文件   “/python27_runtime/python27_lib/versions/third_party/webapp2-2.3/webapp2.py”   第1511行,致电       rv = self.handle_exception(request,response,e)文件“/python27_runtime/python27_lib/versions/third_party/webapp2-2.3/webapp2.py”,   第1505行,致电       rv = self.router.dispatch(request,response)文件“/python27_runtime/python27_lib/versions/third_party/webapp2-2.3/webapp2.py”,   第1253行,在default_dispatcher中       return route.handler_adapter(request,response)文件“/python27_runtime/python27_lib/versions/third_party/webapp2-2.3/webapp2.py”,   第1077行,致电       return handler.dispatch()文件“/python27_runtime/python27_lib/versions/third_party/webapp2-2.3/webapp2.py”,   第547行,发送       return self.handle_exception(e,self.app.debug)文件“/python27_runtime/python27_lib/versions/third_party/webapp2-2.3/webapp2.py”,   第545行,在发送中       return方法(* args,** kwargs)文件“/base/data/home/apps/s~myapp/0-2-5.365473085936457098/app/controllers/admin.py”,   第42行,在得到       template = jinja_environment.get_template('default.html')File“/ python27_runtime/python27_lib/versions/third_party/jinja2-2.6/jinja2/environment.py”,   第719行,在get_template中       return self._load_template(name,self.make_globals(globals))File   “/python27_runtime/python27_lib/versions/third_party/jinja2-2.6/jinja2/environment.py”   第693行,在_load_template中       template = self.loader.load(self,name,globals)文件“/python27_runtime/python27_lib/versions/third_party/jinja2-2.6/jinja2/loaders.py”,   第115行,载入中       source,filename,uptodate = self.get_source(environment,name)文件   “/python27_runtime/python27_lib/versions/third_party/jinja2-2.6/jinja2/loaders.py”   第180行,在get_source中       提升TemplateNotFound(模板)TemplateNotFound:default.html

提前感谢您的帮助!

2 个答案:

答案 0 :(得分:1)

试试"templates/admin"。反斜杠的事情是Windows主义。

答案 1 :(得分:0)

理想情况下使用Linux(可能是Ubuntu或Mint)从长远来看它也会让你头痛不已