IT
Python Flask
Flask란?
Flask는 Python 기반의 마이크로 웹 프레임워크야. ‘마이크로’라고 해서 기능이 부족하다는 뜻은 아니고, 기본적으로 최소한의 핵심 기능만 제공하고 나머지는 확장해서 사용하도록 설계되었다는 의미야.
즉, 필요한 것만 선택해서 자유롭게 설계할 수 있는 가볍고 빠른 프레임워크야.
Flask의 특징
• 간단하고 직관적인 코드 구조
• 유연하고 커스터마이징이 쉬움
• 기본적으로는 라우팅과 템플릿 엔진만 제공
• ORM, 인증, 관리 도구는 직접 선택해서 사용
• 작고 빠르며 배우기 쉬움
• RESTful API 만들기에 적합
Django와 비교하면?
항목
Django
Flask
철학
배터리 포함 (다 내장)
최소한의 기능, 확장성 중심
구조
엄격하고 정형화된 구조
자유롭고 단순한 구조
사용 난이도
입문자도 쉽지만 초반 구조 복잡함
매우 간단하게 시작 가능
확장성
내장 기능으로 확장 가능
플러그인이나 외부 라이브러리 필요
API 제작
Django REST Framework 필요
기본 Flask로도 가능
Flask 기본 구조 예시
myflaskapp/
├── app.py
├── templates/
│ └── index.html
└── static/
└── style.css
Flask 예제 코드
1. 간단한 Flask 앱
# app.py
from flask import Flask
app = Flask(__name__)
@app.route('/')
def home():
return 'Hello, Flask!'
if __name__ == '__main__':
app.run(debug=True)
2. 템플릿 사용
# app.py
from flask import Flask, render_template
app = Flask(__name__)
@app.route('/')
def index():
return render_template('index.html', name='홍길동')
<!-- templates/index.html -->
<!DOCTYPE html>
<html>
<head>
<title>Flask 예제</title>
</head>
<body>
<h1>안녕하세요, {{ name }}님!</h1>
</body>
</html>
3. 폼 데이터 받기 (POST 요청)
from flask import Flask, request
app = Flask(__name__)
@app.route('/login', methods=['GET', 'POST'])
def login():
if request.method == 'POST':
username = request.form['username']
return f"안녕하세요, {username}님!"
return '''
<form method="post">
이름: <input type="text" name="username">
<input type="submit" value="확인">
</form>
'''
4. RESTful API 예제
from flask import Flask, jsonify
app = Flask(__name__)
@app.route('/api/data')
def get_data():
data = {'name': 'Alice', 'age': 30}
return jsonify(data)
자주 사용하는 Flask 확장 도구
확장명
기능
Flask-SQLAlchemy
ORM 기능 (데이터베이스 연동)
Flask-WTF
웹 폼 처리
Flask-Login
로그인/세션 관리
Flask-Migrate
DB 마이그레이션
Flask-RESTful
RESTful API 쉽게 만들기
Flask-Mail
이메일 전송 기능
Flask를 사용하기 좋은 경우
• 가볍고 빠르게 웹 서비스를 시작하고 싶은 경우
• 자신이 원하는 구조로 자유롭게 설계하고 싶은 경우
• REST API 서버를 개발하고 싶은 경우
• Django는 너무 무겁다고 느껴질 때
원한다면 다음 중 하나를 더 깊게 파고들 수도 있어:
• Flask로 CRUD 웹 앱 만들기
• Flask + SQLAlchemy로 DB 다루기
• Flask RESTful API + JWT 로그인 구현
• Flask 배포 (Heroku, Docker 등)
궁금한 주제 있으면 편하게 말해줘.
댓글
아직 댓글이 없습니다.
로그인 후 댓글을 남길 수 있습니다.