パラメーターを指定して 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 サイトを作成できます。
Haider specializes in technical writing. He has a solid background in computer science that allows him to create engaging, original, and compelling technical tutorials. In his free time, he enjoys adding new skills to his repertoire and watching Netflix.
LinkedIn