我的python函数没有';t工作(使用python27、谷歌应用程序引擎、html、jinja)

我的python函数没有';t工作(使用python27、谷歌应用程序引擎、html、jinja),html,google-app-engine,jinja2,Html,Google App Engine,Jinja2,我的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

我的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> 
有问题。如果我不把它注释掉,这个页面将有500个错误

(二)

如果我不注释掉else部分,页面也会有500个错误

请帮忙! 我不知道怎么了! 我猜,可能是因为我的python中没有Jinja2。但是我已经运行了ez_setup.py Jinja2,它说Jinja2已经安装了

我还在html文件中尝试将value=“{{title}}”更改为value={{{title}},但仍然不起作用

谢谢

感谢@Greg

我不知道日志中有错误消息。 检查错误消息后,我发现了错误

关于第一个问题,它是一些空格/制表符混合的问题。和这个一样。 问题是通过使用

python -m tabnanny yourfile.py

关于第二个问题,因为我使用了“:”而不是“:”。这是一个输入错误。

如果您的浏览器中出现500个错误,控制台中会出现完整的错误消息和堆栈travce,如果您使用的是launcher程序,则日志窗口中会出现完整的错误消息和堆栈travce。您不使用jinja的easy_setup,它包含在SDK中。在日志中记录错误500并确认问题所在。如果是因为jinja2不存在,请阅读使用第三方库文档并适当配置app.yaml
if (title and art):
            self.write("Thanks!")       
        #else :
            #self.write("Ooops")
         
python -m tabnanny yourfile.py