2013-11-22 65 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 

至於瓶來講,他們不給你一個乾淨的方式來做到這一點,所以你必須自己寫。