0

更新:我收到的错误消息是 404 Resource not found。

"GET /unexpected/The%20Notebook%20name%20is%20taken%20already HTTP/1.1" 404 -

发生该错误时,URL 如下所示。

http://localhost:8088/unexpected/The%20Notebook%20name%20is%20taken%20already

我试图为我的应用程序中的用户错误创建一种“警报”系统非常糟糕。在我看来,单词之间的空格是问题所在。但必须有一种简单、优雅的方式来做到这一点。

在下面的两行中,上一行有效,但下一行无效。

return webapp2.redirect("/unexpected/%s" % 'Hello')
# return webapp2.redirect("/unexpected/%s" % 'The Notebook name is taken already')

对应的定义如下。在这里,我希望注释掉的行会起作用,但它也不会。

class Unexpected(BaseHandler):

    def get(self, reason):
        template_values = {'reason':reason}
        path = os.path.join(TEMPLATE_DIR, 'unexpected.html')
        self.response.out.write(template.render(path, template_values))
        # return webapp2.redirect('/unexpected/%s/ % reason')

app = webapp2.WSGIApplication([
        ('/', MainPage), 
        ('/unexpected/([\w]+)', Unexpected)])

如何获取发送到unexpected.html页面的消息?我以前用 javascript Alerts 做过这个,但我试图不在这里使用 javascript。

{% extends "base.html" %}
{% block content %}

This unexpected result occurred: {{ reason }}
<br >
Click the back button and edit your entry.

{% endblock content %}
4

1 回答 1

0

我的问题是我试图在def get(没有数据存储模型的情况下将信息传输到def get(. 我已经定义了一个def get(使用名为的数据存储模型,该模型将Trans包含在我的句子中的此类事务信息存储在名为 的变量中reason

class Trans(db.Model):
    reason = db.StringProperty()

我的模型命名Unexpected如下所示。

class Unexpected(BaseHandler):

    def get(self):
    trans=Trans.get_by_key_name('reason')
    template_values = {'trans':trans}
        path = os.path.join(TEMPLATE_DIR, 'unexpected.html')
        self.response.out.write(template.render(path, template_values))

我的python代码如下。

reason='That Notebook name is taken already.'
    trans = Trans(key_name='reason')
    trans.reason=reason
    trans.put()
    template_values = {'trans':trans}
    path = os.path.join(TEMPLATE_DIR, 'unexpected.html')
    self.response.out.write(template.render(path, template_values))

我的unexpected.html代码如下。

{% extends "base.html" %}
{% block content %}
This unexpected result occurred: <emph style="font-weight: bold">{{ trans.reason }}</emph>
<br /><br />
<label>Click the "Ok" button and to go back to the previous page so you can edit your entry .
</label>
<form action="" method="post">
<input type="hidden" name="reason" value=""></input><br />
  <input type="submit" value="Ok"/>
</form>
{% endblock content %}
于 2012-08-07T16:26:42.407 回答