Flask 리디렉션

Salman Mehmood 2024년2월15일
Flask 리디렉션

이 설명을 통해 redirect() 함수를 사용하여 사용자를 리디렉션하는 방법과 Flask에서 이를 여러 목적으로 사용하는 방법을 알아보겠습니다.

Flask의 redirect() 함수를 사용하여 사용자 리디렉션

Flask에서 리디렉션은 매우 간단합니다. 단순히 요청이나 API를 사용하여 사이트의 사용자 또는 누군가를 리디렉션합니다.

사용자를 리디렉션하는 다양한 방법이 있습니다. 예를 들어, 그들이 귀하의 홈페이지에 방문하여 귀하의 사이트에 로그인하면 회원 영역으로 리디렉션하거나 원하는 곳 어디에서나 비밀번호 복구 페이지로 리디렉션할 수 있습니다.

일반적으로 리디렉션은 서버 측에서 사람들을 다음 페이지로 보내는 방법입니다. 따라서 해당 페이지에서 요청을 시작할 필요가 없습니다.

코드 작성을 시작하기 전에 여기에서 redirect() 함수 구문을 보여드리겠습니다.

통사론:

flask.redirect(location, code=302, Response=None)

처음 두 매개변수 locationcode만 사용합니다. location은 URL이고 code는 요청 또는 redirect() 응답과 함께 전송되는 HTTP 상태 코드입니다.

일부 코드로 이를 보여줍시다. 여기서는 Flask 앱을 ​​빠르게 설정하고 Flask 가져오기부터 시작합니다.

우리는 몇 가지 경로를 설정할 것입니다. 하나는 header 태그가 있는 index() 함수를 생성하고 다른 하나는 특정 끝점과 함께 header 태그도 사용하는 MEMBERS() 함수입니다.

첫 번째 예는 앱의 페이지 간 리디렉션입니다. 두 개의 보기 또는 두 개의 페이지를 만들었으며 인덱스로 이동하는 사람이 자동으로 회원 페이지로 리디렉션되기를 원합니다.

그래서 우리는 url_for() 함수와 함께 redirect() 함수를 사용할 것입니다. redirect() 함수는 첫 번째 매개변수에 대한 위치를 취하며 이 location 매개변수는 url_for()여야 합니다.

원하는 url_for() 내부에 함수 이름만 입력하면 됩니다. MEMBERS() 함수는 구성원의 URL을 생성하고 이 index() 함수는 사용자를 구성원으로 리디렉션합니다. ’ 페이지.

from flask import Flask, redirect, url_for

app = Flask(__name__)


@app.route("/")
def index():
    return redirect(url_for("MEMBERS"))


@app.route("/members")
def MEMBERS():
    return "<h1>Members Area</h1>"


if __name__ == "__main__":
    app.run(debug=True)

저장한 후 인덱스 페이지를 사용하여 이 앱을 실행하고 그곳을 탐색하면 회원 페이지로 리디렉션됩니다.

개발자 도구를 열고 이 페이지를 실행할 때 네트워크에서 말하는 내용을 살펴보겠습니다. 여기에서 색인을 요청했는데 302 상태를 제공합니다.

‘302’는 일반적으로 누군가를 리디렉션할 때 사용됩니다. 그것은 우리를 회원 페이지로 보내지만 우리는 이것을 하도록 서버를 요청하지 않았습니다.

출력:

Flask 리디렉션 출력 1

또한 두 번째 매개변수를 리디렉션으로 404로 변경할 수도 있습니다. 이는 이상하지만 어떤 조건에서도 사용할 수 있습니다. 자동으로 대상 URL로 리디렉션되어야 합니다. 그렇지 않은 경우 링크를 클릭하십시오.

일반적으로 404는 리디렉션이 아닌 오류에 사용되지만 Flask에서 생성한 해당 링크를 클릭하면 회원 영역으로 전송되기 때문입니다. 특별한 이유가 없는 한 상태 코드를 수정할 필요가 없습니다. 그것을 염두에 두십시오.

from flask import Flask, redirect, url_for

app = Flask(__name__)


@app.route("/")
def index():
    return redirect(url_for("MEMBERS"), 404)


@app.route("/members")
def MEMBERS():
    return "<h1>Members Area</h1>"


if __name__ == "__main__":
    app.run(debug=True)

출력:

Flask 리디렉션 출력 2

회원 영역 대신 임의의 URL로 리디렉션하려는 경우를 가정합니다. 어떤 이유로든 사이트 외부에 있는 것으로 리디렉션하고 싶다고 가정해 보겠습니다. 우리의 경우 자동으로 google.com으로 리디렉션되기를 원합니다.

from flask import Flask, redirect, url_for

app = Flask(__name__)


@app.route("/")
def index():
    return redirect("https://www.google.com")


@app.route("/members")
def MEMBERS():
    return "<h1>Members Area</h1>"


if __name__ == "__main__":
    app.run(debug=True)

출력:

Flask 리디렉션 출력 3

해당 프로세스의 결과에 따라 어딘가로 리디렉션됩니다. 예를 들어 사용자 이름과 비밀번호가 유효한지 확인하면 로그인 정보에 대한 게시물 데이터를 얻을 수 있습니다.

비밀번호가 정확하면 회원의 영역이나 사용자에게 보여주고 싶은 곳으로 비밀번호를 리디렉션합니다. 또는 비밀번호가 잘못된 경우 비밀번호 복구 페이지로 리디렉션할 수 있습니다. 그것은 전적으로 당신에게 달려 있지만 리디렉션은 일반적으로 보기에서 일부 처리 후에 발생합니다.

Salman Mehmood avatar Salman Mehmood avatar

Hello! I am Salman Bin Mehmood(Baum), a software developer and I help organizations, address complex problems. My expertise lies within back-end, data science and machine learning. I am a lifelong learner, currently working on metaverse, and enrolled in a course building an AI application with python. I love solving problems and developing bug-free software for people. I write content related to python and hot Technologies.

LinkedIn

관련 문장 - Python Flask Redirect