почему GAE не находит файлы в папке с моими шаблонами? - PullRequest
2 голосов
/ 11 марта 2012

Я так растерялся.Вчера вечером все работало нормально, и сегодня внезапно перестал работать.

Цель этой страницы - создать список цветов.Шаблоны находятся в их собственной папке, называемой «шаблоны», но 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 %}

1 Ответ

2 голосов
/ 11 марта 2012

не уверен, какую ошибку вы получаете, но я бы попытался использовать абсолютные пути.

вместо

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

попробуйте использовать этот код:

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