Flask 앱 경로

Salman Mehmood 2024년2월15일
Flask 앱 경로

Flask에서 경로를 생성하는 방법과 Flask에서 경로를 호출할 때 응답을 받는 방법을 배웁니다.

Flask에서 app.route() 데코레이터를 사용하여 페이지 만들기

우리가 라우팅할 수 있는 방법은 데코레이터를 사용하는 것입니다. 그렇다면 데코레이터는 무엇입니까? 글쎄, 우리가 @app.route('/')와 같은 기능을 가진 @ 기호를 볼 때마다 그것은 데코레이터입니다.

기존 Python 함수를 마무리하고 동작을 수정할 수 있는 방법입니다. URL을 반환 값으로 라우팅하거나 매핑하고 사용자가 URL을 요청할 때마다 서버의 응답은 함수의 반환 값이 될 것입니다.

훨씬 더 이해가 가는 몇 가지 예를 보여 드리겠습니다. 이제 경로를 만들어 보겠습니다.

@app.route('/fund-api')

이제 Fund_Func()라는 함수를 정의하여 사용자가 /fund-api와 같은 일반적으로 URL이 될 페이지로 이동할 때마다 이 함수는 이 함수 아래에 래핑된 모든 콘텐츠를 반환합니다. HTML <h2> 태그를 반환할 것입니다.

def Fund_Func():
    return "<h2>Your fund is returned</h2>"

이 서버를 저장하고 실행할 때 인덱스 페이지를 방문하여 URL 내부에 fund-api를 작성할 수 있습니다. 이는 서버에 Fund_Func 페이지를 제공하도록 요청하고 요청이 유효한지 확인한다는 것을 의미합니다. . 라우트가 유효하면 이 라우트 내에 존재하는 기능을 실행합니다.

함수를 반환하도록 서버에 요청

render_template()을 사용하여 HTML을 포함하는 더 좋은 방법이 있습니다. 우리가 하는 또 다른 일은 경로 내에서 변수를 사용하는 것입니다.

웹 페이지를 설정 중이고 이 웹 페이지 내부에 프로필 섹션이 있고 어떤 사용자가 프로필을 사용하고 있는지 알고 싶다고 가정해 보겠습니다.

변수를 이 URL의 일부로 조인해야 하며 해당 변수에 따라 내용이 변경됩니다. 이제 우리는 새로운 경로를 생성할 것이고, 경로 내부에 candidate_name이라는 변수를 추가하고 꺾쇠 괄호 사이에 넣을 것입니다.

이제 경로 내에서 사용 중인 함수 내부에 매개변수를 전달한 다음 화면에 표시하고 싶은 대로 이 변수를 반환할 수 있습니다. URL에서 이 변수를 전달합니다.

@app.route("/fund-user-api/<candidate_name>")
def Fund_Func_Var(candidate_name):
    return "<h2>Hi %s,your fund is returned</h2>" % candidate_name

URL과 함께 변수 값을 전달하면 전달한 매개변수와 함께 응답을 반환하고 매개변수 값을 전달하지 않으면 이 또한 URL의 일부이기 때문에 오류가 발생합니다.

사용자를 URL로 전달

완전한 Python 코드:

from flask import Flask

app = Flask(__name__)


@app.route("/")
def index():
    return "The main page"


@app.route("/fund-api")
def Fund_Func():
    return "<h2>Your fund is returned</h2>"


@app.route("/fund-user-api/<candidate_name>")
def Fund_Func_Var(candidate_name):
    return "<h2>Hi %s,your fund is returned</h2>" % candidate_name


if __name__ == "__main__":
    app.run(debug=True)
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