2

より具体的なルートが一致しない場合、tipfyを使用して、urls.pyでキャッチオールルートをどのように表現しますか?

Tipfy は Werkzeug のようなルーティングを使用するため、これがあります ( urls.py内):

def get_rules(app): 
rules = [ 
    Rule('/<any>', endpoint='any', handler='apps.main.handlers.MainHandler'), 
    Rule('/', endpoint='main', handler='apps.main.handlers.MainHandler'), 
] 

これは、アプリケーションへのほとんどのランダムなエントリ ポイント ( app.example.com/fooapp.example.com/%20など) に一致しますが、404 になるapp.example.com/foo/barケースはカバーしません。

または、私が見逃している Tipfy で 404 を適切に処理する方法はありますか?

4

2 に答える 2

4

私はあなたが欲しいと思います:

Rule('/<path:any>', endpoint='any', handler='apps.main.handlers.MainHandler')

パス マッチャはスラッシュも照合します。

于 2010-10-20T16:41:39.023 に答える
2

たぶん、カスタムミドルウェアを書くことができます:

class CustomErrorPageMiddleware(object):    
def handle_exception(self, e):           
    return Response("custom error page")

tipfy有効にするには、 configのどこかに追加します。

   config['tipfy'] = {
       'middleware': [
           'apps.utils.CustomErrorPageMiddleware',
       ]
   }

それはあなたにかなりの柔軟性を与えます-あなたは例えばどこかにメールを送って問題があったことを知らせることができます。これにより、アプリケーションのすべての例外がインターセプトされます

于 2010-10-20T20:55:39.170 に答える