Flask는 Python으로 웹 애플리케이션을 쉽게 구축할 수 있는 경량화된 웹 프레임워크입니다. 이번 블로그에서는 Python Flask를 사용하여 간단한 웹 어플리케이션을 구축하는 방법에 대해 알아보겠습니다.
목차
Flask 소개
Flask는 Werkzeug 툴킷과 Jinja2 템플릿 엔진을 기반으로 한 마이크로 웹 프레임워크입니다. 간결하면서도 확장 가능한 구조를 가지고 있어 웹 애플리케이션을 쉽게 개발할 수 있습니다.
Flask 웹앱 설정
먼저, Flask를 설치합니다.
pip install flask
다음은 간단한 Flask 애플리케이션을 만드는 예제입니다.
from flask import Flask
app = Flask(__name__)
@app.route('/')
def hello_world():
return 'Hello, World!'
위의 코드를 app.py
파일에 저장한 후, 터미널에서 다음과 같이 실행합니다.
export FLASK_APP=app.py
flask run
웹 브라우저에서 http://127.0.0.1:5000
을 열면 “Hello, World!”가 표시됩니다.
라우팅
Flask에서는 URL 경로에 따라 특정 함수를 실행할 수 있습니다. 예를 들어, /about
경로로 요청이 오면 “About Page”를 표시하는 함수를 실행할 수 있습니다.
@app.route('/about')
def about():
return 'About Page'
템플릿 사용
Flask는 Jinja2 템플릿 엔진을 통해 동적인 HTML 페이지를 생성할 수 있습니다. 템플릿 파일은 templates
폴더에 저장하여 사용할 수 있습니다.
예를 들어, index.html
파일에 다음과 같이 작성할 수 있습니다.
<!DOCTYPE html>
<html>
<head>
<title>{{ title }}</title>
</head>
<body>
<h1>{{ content }}</h1>
</body>
</html>
그리고 Flask 애플리케이션에서는 다음과 같이 템플릿을 렌더링할 수 있습니다.
from flask import render_template
@app.route('/home')
def home():
return render_template('index.html', title='Homepage', content='Welcome to my website')
데이터베이스 통합
Flask는 다양한 데이터베이스와의 연동을 지원합니다. SQLAlchemy나 Flask-SQLAlchemy를 사용하여 데이터베이스를 쉽게 다룰 수 있습니다.
예를 들어, Flask-SQLAlchemy를 사용하여 SQLite 데이터베이스를 연동하는 방법은 다음과 같습니다.
from flask import Flask
from flask_sqlalchemy import SQLAlchemy
app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///app.db'
db = SQLAlchemy(app)
class User(db.Model):
id = db.Column(db.Integer, primary_key=True)
username = db.Column(db.String(80), unique=True, nullable=False)
email = db.Column(db.String(120), unique=True, nullable=False)
이렇게 Flask를 사용하여 간단한 웹 어플리케이션을 구축하는 방법에 대해 간략히 살펴보았습니다.