我的python函数不起作用(使用python27,Google App引擎,html,jinja)

时间:2014-02-15 23:38:07

标签: 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)

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> 

我正在关注在线class

(从表格处理开始)

问题: (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错误!

请帮忙! 我不知道出了什么问题! 我想,也许是因为我的python中没有Jinja2。但我已经运行了ez_setup.py Jinja2,它说Jinja2已安装!

我还尝试在html文件中将value =“{{title}}”更改为value = {{title}},但仍无效。

谢谢!

1 个答案:

答案 0 :(得分:0)

感谢@Greg !!!

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

关于第一个问题,它是一些空格/标签混合。与此post相同。 使用

发现了问题
python -m tabnanny yourfile.py

关于第二个问题,那是因为我使用“:”而不是“:”。这是一个错字。