Flask URL 변수와 HTTP 메서드 활용하기
안녕하세요, 여러분! 오늘은 Flask를 이용해서 URL 변수와 HTTP 메서드를 어떻게 사용하는지에 대해 알아보려고 해요. Flask는 Python으로 웹 애플리케이션을 만들 때 아주 유용한 프레임워크랍니다. 예시와 함께 차근차근 설명해 드릴게요. 😊
1. Flask URL 변수 활용하기
URL 변수를 사용하면 URL 경로에 동적인 값을 전달할 수 있어요. 예를 들어, 특정 사용자의 프로필을 보여주고 싶다면, URL에 사용자의 이름을 포함시켜 전달할 수 있죠.
예시:
from flask import Flask
app = Flask(__name__)
@app.route('/user/<username>')
def show_user_profile(username):
return f'User {username}'
위 코드를 보면 @app.route('/user/<username>')
부분에서 <username>
이 URL 변수로 사용됐어요. 사용자가 /user/John
이라는 URL에 접속하면, show_user_profile
함수가 호출되고 username
변수에 'John'이 전달되어 User John
이라는 응답을 하게 돼요.
좀 더 복잡한 예시:
@app.route('/user/<username>/<int:age>')
def show_user_profile(username, age):
return f'User {username}, Age {age}'
여기서는 <int:age>
와 같이 타입도 지정할 수 있어요. /user/John/30
이라는 URL로 접근하면 User John, Age 30
이라는 응답이 반환됩니다.
2. HTTP 메서드 활용하기
웹 애플리케이션에서 GET, POST, PUT, DELETE 등 다양한 HTTP 메서드를 사용할 수 있어요. 여기서는 GET과 POST 메서드를 사용하는 방법을 알려드릴게요.
예시:
from flask import Flask, request
app = Flask(__name__)
@app.route('/login', methods=["GET", "POST"])
def login():
if request.method == "POST":
return "Logging in..."
else:
return "Login Form"
위 코드에서는 /login
경로에 대해 GET과 POST 메서드를 처리해요. GET 요청이 오면 "Login Form"을 반환하고, POST 요청이 오면 "Logging in..."을 반환해요.
좀 더 복잡한 예시:
@app.route('/submit', methods=["GET", "POST"])
def submit():
if request.method == "POST":
data = request.form['data']
return f"Data submitted: {data}"
else:
return '''
<form method="post">
Data: <input type="text" name="data">
<input type="submit">
</form>
'''
여기서는 사용자가 데이터를 제출할 수 있는 폼을 보여주고, 폼이 제출되면 POST 요청으로 데이터를 받아서 처리해요. 사용자가 GET 요청을 보내면 폼이 표시되고, POST 요청을 보내면 폼에 입력된 데이터가 처리돼요.
추가 설명
Flask의 라우팅
Flask에서 URL 라우팅은 사용자가 어떤 URL로 접근했는지에 따라 적절한 함수를 호출하게끔 해주는 기능이에요. @app.route
데코레이터를 사용해서 URL과 함수를 연결할 수 있답니다.
Flask의 HTTP 메서드
Flask는 다양한 HTTP 메서드를 쉽게 처리할 수 있게 해줘요. methods
인자를 사용해서 어떤 메서드를 처리할지 지정할 수 있어요.
이렇게 Flask를 사용하면 웹 애플리케이션을 유연하고 쉽게 개발할 수 있어요. 오늘 배운 내용이 여러분의 Flask 개발에 도움이 되길 바라요. 궁금한 점이 있으면 언제든지 물어보세요!