公開日:5/07/2020
シェア:Tweet
続いてのチュートリアル・クイックスタートはリダイレクトとエラーページです。
シェア:Tweet
(Flask)のチュートリアルをやってみる!リダイレクトとエラーページ
といってもリダイレクトは既に使ったことがありますが、改めてここで復習です。
リダイレクト
アクセスがあったときに、指定の処理に飛ばすことができます。
では、コードを見てみましょう。
#-----リダイレクト-----
@app.route("/re_direct/")
def re_direct ():
return redirect(url_for('up_get'))
今回のコードは短くてわかりやすいですね。
にアクセスをすると自動的に
の処理ににリダイレクトされます。
return redirect(url_for('〇〇'))の〇〇にリダイレクト先を入れてあげます。
このとき、移動先のページではなく「処理」の名前を入れてあげます。
エラーページ
続いて、エラーページも作っていきます。
公式のサンプルではうまく動かないので、最初にエラーページを作っておきます。
templatesの中に「err_page.html」のファイルを作ります。
「err_page.html」には次のソースを入れておきます。
<!doctype html>
<h1>エラーです</h1>
<p>{{ message }}</p>
では、welcome.pyに入れるコードを見ていきます。
@app.route("/err_test/")
def err_test():
abort(401)
@app.errorhandler(401)
def err_page(error):
return render_template('err_page.html',message ='401')
まず最初に気になるのが「abort(401)」です。
こちらはエラーを無理やり発生させるコードで401のエラー(未認証エラー)を発生させています。
続いて、「return render_template('err_page.html',message ='401')」で作ったエラーページを表示して「messageに401の数字を表示させるよ」というコードを入れました。
http://127.0.0.1:5000/err_test/にアクセスしてみましょう、
作成したエラーページが表示されました。
追加で
@app.errorhandler(500)def err_page_500(error):return render_template('err_page.html',message ='500')
を入れて
@app.route("/err_test/")def err_test():abort(401)
⇣
@app.route("/err_test/")def err_test():abort(500)
に変更してみましょう。
が表示されれば成功です。
このように、例外エラーが起きた場合などにエラーページを表示できるようになります。