エラーのルーティング

□未翻訳

□翻訳中

□s翻訳完了(細田謙二)

■レビュー(中垣健志)

エラーのルーティング

"routes.py"を用いて、サーバにエラーが起こったとき、訪問者を特定のアクションにリダイレクトさせることも可能です。このマッピングを、各アプリケーション、各エラーコード、各アプリケーションのエラーコード、に対してグローバルに指定することができます。以下はその例です:

You can also use "routes.py" to redirect the visitor to special actions in case there is an error on server. You can specify this mapping globally, for each app, for each error code, for each app and error code. Here is an example:

1.

2.

3.

4.

5.

6.

routes_onerror = [

('init/400', '/init/default/login'),

('init/*', '/init/static/fail.html'),

('*/404', '/init/static/cantfind.html'),

('*/*', '/init/error/index')

]

各タプルに対して、最初の文字列は"[appname]/[error code]"にマッチします。一致した場合、ユーザは、マッチしたタプルの2番目の文字列にあるURLにリダイレクトされます。チケットが発行された場合、チケットは新規URLに対して、チケットとして呼ばれるGET変数として渡されます。

For each tuple the first string is matched against "[appname]/[error code]". If a match is found the user is redirected to the URL in the second string of the matching tuple. In case a ticket was issued, the ticket is passed to the new URL as a GET variable called ticket.

マッチしないエラーはデフォルトのエラーページが表示されます。このデフォルトのエラーページもカスタマイズすることができます:

Unmatched errors display a default error page. This default error page can also be customized here:

1.

2.

3.

4.

error_message = '<html><body><h1>Invalid request</h1></body></html>'

error_message_ticket = '''<html><body><h1>Internal error</h1>

Ticket issued: <a href="/admin/default/ticket/%(ticket)s"

target="_blank">%(ticket)s</a></body></html>'''

最初の変数は、無効なアプリケーションがリクエストされていたときのエラーメッセージです。2番目の変数は、チケットが発行されたときのエラーメッセージを格納します。

The first variable contains the error message when an invalid application is requested. The second variable contains the error message when a ticket is issued.