异常处理和空白页面

时间:2014-04-30 09:57:10

标签: python google-app-engine

我正在阅读有关数据存储异常处理here和可能的错误here但我在实现它时遇到问题。这是我所做的示例代码。

try:
    example.put()
except datastore_errors.TransactionFailedError:
    self.response.write('Transaction failed, try again.')

当我尝试加载页面时,没有任何内容出现。我已经构建了一个与我的数据库交互的小接口,但是没有显示出来。如果我删除了try / except语句,一切正常。

我做错了什么? 为什么没有显示任何东西呢?它不应该至少显示HTML模板,只是在我尝试将某些内容放入数据库时​​抛出错误吗?

修改的 添加了处理程序代码,更多信息

我在这里做的是我有一个页面,我选择一个数据库。根据我的选择,我打开了一个模板,用于将实例轻松添加到该数据库。到目前为止,我只为一个数据库创建了一个模板。我也在使用MathJax库并且在发布之前有检查按钮来检查输入。

当我实现try / except语句时,nothings会被渲染。甚至是第一页,它使用完全不同的处理程序。我想知道为什么以及try / except语句有什么问题。

希望有所帮助。

class MainPage(webapp2.RequestHandler):

    def get(self):
        page = env.get_template('main.html')
        self.response.out.write(page.render())

class DatabaseHandler(webapp2.RequestHandler):

    def get(self):
        database = self.request.get('db')
        mathPage = env.get_template('mp_database.html')
        menuPage = env.get_template('mi_database.html')
        if database == 'mathproblem':
            self.response.write(mathPage.render())
        elif database == 'menuitem':
            self.response.write(menuPage.render())

    def post(self):
            submit = self.request.get('submit')
            if submit == 'Submit':
                page = env.get_template('mp_database.html')
                problem = self.request.get('problem')
                problem_db = MathProblem(task=problem)
                problem_db.put()
                value = {'added': '\(' + problem + '\)' + ' ' 'added'}
                self.response.write(page.render(value))

            elif submit == 'Check':
                page = env.get_template('mp_database.html')
                problem = self.request.get('problem')
                values = {'displayed': '$$' + problem + '$$',
                      'problem': problem, 'text': 'Problem'}
                self.response.write(page.render(values))

app = webapp2.WSGIApplication([
    ('/', MainPage),
    ('/database', DatabaseHandler),
], debug=True)

0 个答案:

没有答案