매개변수와 함께 Flask redirect() 함수 사용

Haider Ali 2023년6월21일
매개변수와 함께 Flask redirect() 함수 사용

여기에서는 Flask의 redirect() 기능에 대해 설명합니다. 매개변수는 무엇이며 어떻게 사용되며 실행에 필요한 것은 무엇입니까? 그래서, 그것에 대해 배우기 시작합시다.

Flask redirect() 함수를 매개변수와 함께 사용

redirect()는 사용자가 특정 URL로 리디렉션한 다음 오류로 알려진 상태 코드를 할당하기 위해 명시적으로 사용되는 Flask 기능 또는 유틸리티입니다. Error와 redirect()는 함께 사용되지만 이 가이드에서는 다루지 않습니다.

대상 위치로 리디렉션이 발생하고 이 함수가 호출되면 상태 코드와 함께 응답 개체가 반환됩니다.

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() 함수는 양식을 생성하는 한 가지 목적을 위해 생성됩니다. 양식을 사용하여 새 웹사이트의 URL로 사용할 이름을 입력할 수 있습니다.

redirector() 함수에는 usernameredirect 기능의 두 부분이 포함됩니다. 여기서 사용자 이름은 양식의 이름을 요청하는 데 사용됩니다. 여기에 입력된 것은 양식이 생성될 때 index() 함수에 연결됩니다.

두 번째 부분인 redirect()는 해당 매개변수에 언급된 웹 사이트로 리디렉션됩니다. 이 경우 url_for() 함수를 사용하여 웹사이트를 생성합니다.

여기서 url_for() 함수는 리디렉션할 URL을 생성하는 데 사용됩니다. 이 예제에서는 공식적으로 생성된 URL을 사용하지 않습니다. 대신 자체 URL을 사용하고 있습니다.

여러 키워드 인수는 URL 규칙의 변수를 나타내며 첫 번째 인수는 함수 이름입니다. 쿼리 매개변수로 알 수 없는 변수가 있는 URL이 추가됩니다.

이제 출력을 보고 이 예를 이해해 보겠습니다. 이 예제에서는 시스템이 해당 페이지로 리디렉션하기 위해 사용자에게 이름을 입력하도록 요청하는 인덱스 페이지를 만들었습니다.

Flask Redirect With Parameters - Form

여기에 임의의 이름을 입력하면 해당 이름으로 생성된 페이지로 리디렉션됩니다. 예를 들어 Aria라는 이름을 입력합니다.

Flask Redirect With Parameters - Redirected Page

보시다시피 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, redirecturl_for를 가져와야 합니다. 이들을 가져오지 않으면 이 코드에서 사용한 함수를 사용할 수 없습니다.

이 코드에 따르면 request는 새 웹 사이트를 만들기 위한 이름을 요청하는 데 도움이 되며 redirect는 매개 변수에서 언급한 특정 웹 사이트로 리디렉션할 수 있도록 합니다.

마지막으로 url_for를 사용하면 인덱스 기능의 양식을 사용하여 만든 이름을 사용하여 새 웹사이트를 만들 수 있습니다.

작가: Haider Ali
Haider Ali avatar Haider Ali avatar

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

관련 문장 - Python Flask Redirect