Моя функция python не работает (с использованием python27, движка Google App, html, jinja)

0

Мой код python:

import os
import webapp2
import jinja2
from google.appengine.ext import db

template_dir = os.path.join(os.path.dirname(__file__), 'templates')
jinja_env = jinja2.Environment(loader = jinja2.FileSystemLoader(template_dir), autoescape=True)

class Handler(webapp2.RequestHandler):
    def write(self, *a, **kw):
        self.response.out.write(*a, **kw)
    def render_str(self, template, **params):
        t = jinja_env.get_template(template)
        return t.render(params)
    def render(self, template, **kw):
        self.write(self.render_str(template, **kw))

class MainPage(Handler):
    #def render_front(self, title="", art="", error=""):
        #self.render("front.html", title=title, art=art, error = error) 

    def get(self): 
        self.render("front.html")

    def post(self):
        title = self.request.get("title")
        art = self.request.get("art")

        if (title and art):
            self.write("Thanks!")       
        #else :
            #self.write("Ooops")
            #error="we need both a title and some artwork!"
            #self.render("front.html", error=error)  

application = webapp2.WSGIApplication([('/',MainPage)],debug=True)

Мой HTML-код:

<!DOCTYPE html>

<html>
    <head>
        <title>/ascii/</title>
    </head>

    <body>
        <h1>/ascii/</h1>
        <form method="post">
            <label>
                <div>title</div>
                <input type="text" name="title" value= "{{ title }}">
            </label>

            <label>
                <div>art</div>
                <textarea name="art">{{ art }}</textarea>
            </label>

            <div class="error">{{ error }}</div>

            <input type="submit">
        </form>
    </body> 
</html> 

Я следую онлайн- классу:

(начиная с обработки формы)

Задача: (1) Функция

#def render_front(self, title="", art="", error=""):
        #self.render("front.html", title=title, art=art, error = error) 

Имеет проблемы. Если я не прокомментирую это, страница будет иметь 500 ошибок.

(2)

if (title and art):
            self.write("Thanks!")       
        #else :
            #self.write("Ooops")

если я не прокомментирую остальную часть, страница также будет иметь ошибку 500!

Пожалуйста помоги! Я не знаю, что случилось! Думаю, может быть, потому, что у меня не было Jinja2 на моем питоне. Но я запустил ez_setup.py Jinja2, и он сказал, что Jinja2 установлен!

Я также попытался в html файле изменить value = "{{title}}" на value = {{title}}, но все равно не работает.

Благодарю!!

  • 1
    Если в вашем браузере появляется ошибка 500, в консоли или в окне журнала, если вы используете программу запуска, будет полное сообщение об ошибке и стек-travce.
  • 0
    вы не используете easy_setup для jinja, который включен в SDK. Получите вашу ошибку 500 в журналах и подтвердите, в чем проблема. Если это связано с отсутствием jinja2, ознакомьтесь с использованием сторонних библиотек docs developers.google.com/appengine/docs/python/tools/libraries27 и соответствующим образом настройте свой app.yaml
Теги:
jinja2
google-app-engine

1 ответ

0
Лучший ответ

Благодаря @Greg !!!

Я не знал, что сообщение об ошибке находится в журнале. После проверки сообщения об ошибке я обнаружил ошибки!

О проблеме с кулаком, это некоторое пространство/вкладка. То же, что и этот пост. Проблема была обнаружена при использовании

python -m tabnanny yourfile.py

О второй проблеме, это потому, что я использовал ":" вместо ":". Это была опечатка.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню