python - 为什么 GAE 在我的模板文件夹中找不到文件?

标签 python google-app-engine jinja2

我很困惑。昨晚还好好的,今天突然就不行了。

此页面的目的是生成颜色列表。这些模板位于它们自己的名为“templates”的文件夹中,但 GAE 似乎根本找不到这些模板。

我在这里做错了什么?

main2.py:

import bottle
from bottle import static_file
from google.appengine.ext.webapp import util
from bottle import route

# Load the template system
from jinja2 import Environment, FileSystemLoader

# Indicate from where the templates will be loaded
env = Environment(loader=FileSystemLoader('./templates/'))

# for randomly picking colors
import random

colors = 'green red blue';

@route('/favicon.ico')
def send_image():
    filename = 'favicon.ico'
    return static_file(filename, root='./images/', mimetype='image/ico');

@route('/hello')
def hello():
    template = env.get_template('home.html');
    color_list = colors.split();
    num_colors = random.randint(0,len(color_list)+1);
    color_list = color_list[:num_colors];
    return template.render(title="Color List Page!", color_list=color_list);

util.run_wsgi_app(bottle.default_app())

app.yaml

application: yao-webapp2
version: 1
api_version: 1
runtime: python

handlers:
- url: .*
  script: main2.py

/templates/base.html

<!DOCTYPE html>
<html>
    <head>
    <meta charset="utf-8">
    <title>
        {% block title %}
        I am stupid as heck: I forgot to fill in a title.
        {% endblock %}
    </title>
    </head>
    <body>
        {% block content %}
        No body knows the trouble I've seen.
        {% endblock %}
    </body>
</html>

/templates/home.html

{% extends "base.html" %}

{% block title %}
    {{page_title}}
{% endblock %}

{% block content %}
    <h1>Some Colors I know </h1>
    <p>I have a list of colors that I know</p>
    {% if color_list %}
        <ul>
        {% for color in color_list %}
            <li> {{ color }} </li>
        {% endfor %}
        </ul>
    {% else %}
        <p>Oops! No colors.</p>
    {% endif %}
{% endblock %}

最佳答案

不确定您遇到什么错误,但我会尝试使用绝对路径。

而不是

env = Environment(loader=FileSystemLoader('./templates/'))

尝试使用此代码:

templatespath = os.path.join(os.path.dirname(__file__), "templates")
env = Environment(loader=FileSystemLoader(templatespath))

关于python - 为什么 GAE 在我的模板文件夹中找不到文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9657409/

相关文章:

angular - 单页应用的 AppEngine app.yaml 配置

sqlalchemy - 将 SQLAlchemy 查询传递给基本 Jinja 模板

python - jinja2 django 模板中的 pgettext

python - 从 NTFS 共享导入 Linux 上的 Python 模块

python - 我想用 Python 为基于桌面的应用程序开发一个框架。我该怎么办?

python - 来自源代码的 Scipy 安装问题?

python - 包括 Jinja 模板中的 block

python - csvkit:对于 csv 到 Table,当

java - App Engine 异常,如何在 Android 中捕获

python - ImportError - GAE 中没有名为 main 的模块