我的python函数没有';t工作(使用python27、谷歌应用程序引擎、html、jinja)
我的python代码:我的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
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