[Python] Flask

KangHo Lee's avatar
Jun 11, 2025
[Python] Flask

✅ 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)

▶ 실행 방법

  1. app.py로 저장
  1. 터미널에서 실행:
    1. python app.py
  1. 브라우저에서 http://localhost:5000 접속
  1. 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

devleekangho