HOWTO · Flask
パラメーターを指定して Flask の redirect() 関数を使用する
この記事では、Flask の redirect() 関数について説明します。 そのパラメーターは何ですか?どのように使用され、実行するには何が必要ですか?
このページの内容
ここでは、Flask の redirect() 関数について説明します。 そのパラメーターは何ですか?どのように使用され、実行するには何が必要ですか? それでは、それについて学び始めましょう。
パラメータ付きのFlask redirect()関数を使用する
redirect() は、ユーザーが特定の URL にリダイレクトし、エラーとして知られるステータス コードを割り当てるために明示的に使用される Flask 関数またはユーティリティです。 error と redirect() は一緒に使われますが、このガイドでは取り上げません。
この関数が呼び出されると、ターゲットの場所にリダイレクトされ、ステータス コードと共に応答オブジェクトが返されます。
Web サイトがリクエストを受信すると、HTTP コードが生成され、処理後に 3 桁のコードで応答します。
redirect() 関数の働きをさらに理解するために例を見てみましょう。 ここでは、簡単な説明のためにコード スニペットを示しています。 完全なコードは、このガイドの最後に記載されています。
@app.route("/")
def index(): # An index page will be created where a form will be shown and tells the user to enter a name.
return """<form action="/goto" method="POST">
<label>Enter Your Name</label>
<input name="username" required>
<input type="submit" value="Submit">
</form>"""
@app.route("/goto", methods=["POST"])
def redirector(): # a redirector function created
username = request.form.get("username") # this requests the name
return redirect(
url_for("user", name=username)
) # this is the redirect function being implemented.
コードの関数 index と redirector を見てみましょう。
index() 関数は、フォームを作成するという 1つの目的のために作成されます。 フォームを使用して、新しい Web サイトの URL として使用される任意の名前を入力できます。
redirector() 関数には、username と redirect 関数の 2つの部分が含まれます。 ここでの username は、フォームの名前を要求するために使用されます。 ここに入力されたものは、フォームがそこで作成されるときに index() 関数にリンクされます。
2 番目の部分 redirect() は、パラメーターで指定された Web サイトにリダイレクトします。 この場合、Web サイトは url_for() 関数を使用して作成されます。
関数 url_for() を使用して、リダイレクトする URL を作成します。 この例では、公式に作成された URL は使用していません。 代わりに、独自の URL を使用しています。
いくつかのキーワード引数は URL ルールの変数を表し、最初の引数は関数の名前です。 クエリ パラメータとして、変数が不明な URL が追加されます。
それでは、出力を見てこの例を理解しましょう。 この例では、システムがユーザーに名前を入力してそのページにリダイレクトするよう求める index ページを作成しました。
ここで任意の名前を入力すると、その名前で作成されたページにリダイレクトされます。 たとえば、Aria という名前を入力します。
ご覧のとおり、Aria という名前のページに正常にリダイレクトされました。
次に、要求されたときに google.com にリダイレクトする別の例を見てみましょう。
@app.route("/goto1") # \goto1 will be used as a keyword to redirect.
def redirector_1():
return redirect("https://www.google.com") # will redirect to google
この例では、URL \goto1 を入力する必要があります。 google.com にリダイレクトされるために必要なことはそれだけです。
URL の入力方法は次のとおりです。
The http address provided by the system/goto1
http://127.0.0.1:5000/goto1 #accoridng to example
以下の完全なコードには、redirect 関数が使用される両方の方法が含まれています。
from flask import Flask, request, redirect, url_for
app = Flask(__name__)
@app.route("/")
def index():
return """<form action="/goto" method="POST">
<label>Enter Your Name</label>
<input name="username" required>
<input type="submit" value="Submit">
</form>"""
@app.route("/goto", methods=["POST"])
def redirector():
username = request.form.get("username")
return redirect(url_for("user", name=username))
@app.route("/goto1")
def redirector_1():
return redirect("https://www.google.com")
@app.route("/user/<name>")
def user(name):
return f"Hello {name}"
if __name__ == "__main__":
app.run(debug=True)
上記のライブラリ、Flask、request、redirect、および url_for をインポートする必要があります。 これらをインポートしないと、このコードで使用した関数を使用できません。
このコードによると、request は新しい Web サイトを作成するための名前を要求するのに役立ち、redirect はパラメーターで指定した特定の Web サイトにリダイレクトできるようにします。
最後になりましたが、url_for を使用すると、index 関数のフォームを使用して作成された名前を使用して、新しい Web サイトを作成できます。