Flask 라우팅 개념
라우팅(Routing)은 사용자가 특정 URL로 접속했을 때 어떤 함수가 실행될지 연결해주는 기능이다.
Flask에서는 @app.route() 데코레이터를 사용해 URL과 함수를 연결한다.
예를 들어,
기본 구조는 다음과 같다.
라우팅은 Flask의 가장 핵심적인 개념이다.
웹 서버는 결국 URL 요청을 받아 적절한 응답을 반환하는 구조이기 때문이다.
여러 개의 라우트 만들기
Flask에서는 여러 개의 URL을 쉽게 만들 수 있다.
@app.route("/")
def home():
return "Home Page"
@app.route("/about")
def about():
return "About Page"
각 URL마다 다른 함수가 실행된다.
동적 라우팅
URL에 값을 포함할 수도 있다.
@app.route("/user/<name>")
def user(name):
return f"Hello {name}"
브라우저에서
/user/minho
로 접속하면
Hello minho
가 출력된다.
이처럼 URL에 포함된 값을 함수의 매개변수로 받을 수 있다.
타입 지정 라우팅
Flask는 URL 변수의 타입도 지정할 수 있다.
@app.route("/post/<int:id>")
def post(id):
return f"Post number {id}"
여기서 <int:id>는 id를 정수로 받겠다는 의미이다.
여러 라우트 테스트 코드
from flask import Flask
app = Flask(__name__)
@app.route("/")
def home():
return "Home"
@app.route("/hello/<name>")
def hello(name):
return f"Hello {name}"
@app.route("/number/<int:num>")
def number(num):
return f"Number is {num}"
if __name__ == "__main__":
app.run(debug=True)
URL과 함수가 어떻게 연결되는지 처음에는 구조가 잘 이해되지 않았다.