この記事では、flask redirectについて学び、それをどのようにアプリケーションで使用するかを学びます。
なぜリダイレクトを設定する必要があるのでしょうか?
実装に入る前に、まずリダイレクトとは何なのかを知っておきましょう
その名が示すように、リダイレクト機能は、基本的に呼び出されると、ウェブページを別のURLにリダイレクトします。
これは、Webアプリケーションの重要な部分であり、アプリケーションの効率も向上させます。
- Twitterを例にとると、まだログインしていない場合、TwitterのURL(www.twitter.com)を押すと、まずログインページにリダイレクトされます。ここで、リダイレクト機能がその役割を果たす。
- 同様に、オンライン決済の際も、決済が完了すると、確認ページにリダイレクトされます。
- リダイレクトのもう一つの利点は、URL短縮に役立つことです。例えば、https://bit.ly。例えば、。ここでは、短いURLを入力すると、元の長いURLにリダイレクトされます。
さて、リダイレクトが使われる理由がわかったところで、実践編に移りましょう。
この記事もチェック:FlaskとSQLAlchemyを使ってログイン認証機能を実装する方法
Flask のリダイレクトを実装する
では、Flask の redirect 関数を使って、ちょっとしたアプリケーションをコーディングしてみましょう。
その前に、redirect 関数の構文を見ておきましょう。
1. Flask の redirect 属性のシンタックス
redirectの構文です。
redirect(location, code, response = None )
|
ここで
- location: 最終的なウェブページのターゲット位置
- ステータスコード。HTTPリダイレクトのステータスコードで、アクションの出力を表します。デフォルトは302
- Response: レスポンス:レスポンスを開始するときに使用するレスポンスコール。
最後の1つについては、今はあまり気にする必要はないでしょう。
他のステータスコードのいくつかは、次のとおりです。
| ステータスコード:HTTPの意味
| — | — |
| 300|複数の選択肢
| 301|恒久的に移動しました。
注:リダイレクト属性を使用する前に、まずリダイレクト属性をインポートする必要があります。
from flask import redirect
|
2. リダイレクトのエラー処理
Flask には、リダイレクトに失敗したときのために abort() 関数も用意されています。
abort() 関数のシンタックスは以下の通りです。
abort(<error_code>) |
各種エラーコードは以下の通りです。
エラーコード | 意味 |
---|---|
400|不正なリクエスト | |
401|認証されていません | |
403|フォービドゥン | |
404|見つかりません | |
406 | 受け入れられません |
415|メディアタイプが未対応です。 | |
429 | リクエストが多すぎます |
Error Codes注:この属性も最初にインポートする必要があります。
from flask import abort
|
この記事もチェック:Flaskのエラー処理|エラーメッセージの表示やエラーログを表示させる方法
3. アプリケーションのコード
では、次のコード例を考えてみましょう。
from flask import Flask,render_template,request,redirect
app = Flask(__name__)
@app .route( '/form' )
def form():
return render_template( 'form.html' )
@app .route( '/verify' , methods = [ 'POST' , 'GET' ])
def verify():
if request.method = = 'POST' :
name = request.form[ 'name' ]
return redirect(f "/user/{name}" )
@app .route( '/user/<name>' )
def user(name):
return f "Your name is {name}"
app.run(host = 'localhost' , port = 5000 )
|
ここで
- フォームビューは、単にフォームテンプレートをユーザーに表示します。
- ユーザーがフォームを送信すると、フォームのデータがリクエストと共に検証ビューに送信されます。(form.html – action 属性を見てください)
- Verify Viewは、フォームから名前データを取り出し、ユーザーをUser Viewにリダイレクトします(名前データも一緒に)。
構文が分からない場合は、Flask入門の記事を参照してください。
form.htmlは以下の通りです。
< form action = "/verify" method = "POST" >
< p >name < input type = "text" name = "name" /></ p >
< p >< input type = "submit" value = "Submit" /></ p >
</ form >
|
Flaskのフォームを使ってユーザーから入力を受け取り、それをWebページにリダイレクトして名前を返しています。
ここで、シーケンスは次のようになります。
- フォーム機能でフォームを表示します。
- ユーザーが名前を送信すると、verify関数がFormから名前を取り出し、User関数にリダイレクトします。
- User 関数は引数として名前を受け取り、ウェブページに表示します。
この記事もチェック:Flaskにおけるアプリケーションコンテキストとリクエストコンテキストを解説する
4. コードの実装
サーバを起動して確認してみましょう
投稿する
これで完了です。
名前が表示されるようになりました。
まとめ
このチュートリアルは以上です。
練習として、あなたのコードにどのようにabort関数を含めるか考えてみてください。
では、また次の記事でお会いしましょう。