✅ Flask란?
Flask는 Python 기반의 가볍고 유연한 웹 프레임워크입니다.
빠르게 웹 애플리케이션을 만들 수 있고, 확장성이 뛰어나며, 학습 곡선이 낮아 초보자에게 적합합니다.
🔧 Flask 특징 요약
특징 | 설명 |
📦 마이크로 프레임워크 | 핵심 기능만 제공하며, 필요한 기능은 확장해서 사용 |
🧩 유연한 구조 | 원하는 방식으로 앱을 구성할 수 있음 (MVC 자유로움) |
🔌 플러그인 가능 | SQLAlchemy, Jinja2, WTForms 등과 쉽게 통합 가능 |
🧪 개발자 친화 | 디버깅, 자동 리로딩 등 개발 편의 기능 제공 |
💡 기본 사용 예제
from flask import Flask
# Flask 앱 생성
app = Flask(__name__)
# 라우팅: "/" 요청 처리
@app.route('/')
def hello():
return "Hello, Flask!"
# 앱 실행
if __name__ == '__main__':
app.run(debug=True)
▶ 실행 방법
app.py
로 저장
- 터미널에서 실행:
python app.py
- 브라우저에서 http://localhost:5000 접속
- 5000 포트 사용 중일 경우 포트 변경 가능
📁 주요 기능 예시
1. GET/POST 요청 처리
from flask import Flask, request
app = Flask(__name__)
@app.route('/create/', methods=["GET", "POST"])
def create():
if(request.method == "GET"):
content = '''
<form action="/create/" method="POST">
<p>
<input type="text" name="title" placeholder="title">
</p>
<p>
<textarea name="body" placeholder="body"></textarea>
</p>
<p>
<input type="submit" value="create">
</p>
</form>
'''
return template(getContents(), content)
elif request.method == "POST":
global nextId
title = request.form['title']
body = request.form["body"]
newTopic = {'id': nextId, 'title': title, 'body': body}
topics.append(newTopic)
url = '/read/' + str(nextId) + '/'
nextId = nextId + 1
return redirect(url)
- 하나의 주소로 GET, POST 방식 둘 다 라우팅 가능하며 if, elif로 분기를 나눌 수 있다.
2. 동적 URL
@app.route('/user/<username>')
def show_user(username):
return f'Hello, {username}!'
📦 확장 가능 기능 (예시)
- Flask-SQLAlchemy: DB 연동
- Flask-WTF: 폼 유효성 검사
- Flask-Login: 로그인 인증
- Flask-Migrate: DB 마이그레이션
❓ Flask 언제 쓰면 좋을까?
- 작은 웹 앱이나 프로토타입 만들 때
- 단순한 REST API 서버가 필요할 때
- Django보다 자유로운 구조가 필요할 때
Share article