2013-11-22 43 views
0

我已经成功地实现404处理在我的Python应用瓶 - 如下 - 和我的应用程序需要显示在触及404Python瓶可以捕获404捕获中的第二个404吗?

一个静态文件,但如果该文件不存在什么以及它本身产生404?

现在我得到在这种情况下应用程序错误,但有一种方法来生成自定义的404,如果404捕获函数抛出一个404?谢谢!

from bottle import Bottle, error 

"""App Instantiation""" 
app = application = Bottle() 

@app.error(404) 
def error404(error): 
    return static_file(filepath, root=domain_root) 
+0

呃...你不能只打开它之前检查文件是否存在? – SpliFF

回答

0

您可以捕获错误的处理程序,然后处理它时引发的错误:

from bottle import Bottle, error 

"""App Instantiation""" 
app = application = Bottle() 

@app.error(404) 
def error404(error): 
    value=None 
    try: 
     value=static_file(filepath, root=domain_root) 
    except <error_being_raised>: 
     #generate dynamic 404 and assign it to value then return, or return 
     #it straight from here 
    if value != None: 
     return value 

至于瓶来讲,他们不给你一个干净的方式来做到这一点,所以你必须自己写。