파이썬과 Flask로 간단한 웹 앱 만들기: 기초부터 실전까지
웹 개발은 이제 누구나 쉽게 접근할 수 있으며, Flask는 파이썬으로 웹 애플리케이션을 만들 때 매우 유용한 프레임워크 에요. Flask를 사용하면 소규모 프로젝트부터 대규모 웹 애플리케이션까지 다양하게 개발할 수 있는데요, 특히 입문자에게 적합한 이유는 그 간결함과 직관적인 사용법 때문이에요. 이번 포스팅에서는 Flask를 사용하여 간단한 웹 앱을 만드는 방법에 대해 자세히 설명해 드릴게요.
Flask란 무엇인가?
Flask는 파이썬으로 작성된 마이크로 웹 프레임워크에요. “마이크로”라는 용어는 이 프레임워크가 간소화된 구조를 가지고 있다는 것을 의미해요. 필요한 최소한의 기능만 제공하고, 추가적인 기능은 필요에 따라 확장할 수 있도록 설계되어 있죠. Flask는 간단한 사용법과 유연한 구조 덕분에 매우 큰 커뮤니티와 생태계를 가지고 있어요.
Flask의 주요 특징
- 간단함: Flask는 매우 직관적으로 설계되어 있어요.
- 확장성: 필요에 따라 다양한 플러그인을 추가할 수 있어요.
- 유연성: 고정된 구조가 없어서 개발자가 원하는 대로 프로젝트를 구성할 수 있어요.
Flask 설치하기
Flask를 사용하기 위해서는 먼저 Python이 설치되어 있어야 해요. Python은 공식 웹사이트에서 다운로드할 수 있어요.
- Python 다운로드:
- Flask 설치:
bash
pip install Flask
간단한 Flask 웹 앱 만들기
이제 Flask를 설치했으니, 기본적인 웹 앱을 만들어 볼 거예요. 아래 예시를 통해 Flask의 기본적인 사용법을 알아보도록 할게요.
기본 웹 앱 구성
-
프로젝트 폴더를 만들고 이동해요.
bash
mkdir my_flask_app
cd my_flask_app
-
파이썬 파일을 생성해요.
bash
touch app.py
-
app.py
파일을 열고 아래 코드를 입력해요.
python
from flask import Flaskapp = Flask(name)
@app.route(‘/’)
def home():
return “안녕하세요! Flask 웹 앱에 오신 것을 환영합니다.”if name == ‘main‘:
app.run(debug=True)
코드 설명
Flask
모듈을 가져오고, 애플리케이션 객체를 생성해요.@app.route('/')
는 사용자가/
URL에 접근할 때 어떤 함수를 호출할지를 정의해요.home()
함수는 “안녕하세요! Flask 웹 앱에 오신 것을 환영합니다.”라는 메시지를 반환해요.app.run(debug=True)
는 앱을 디버깅 모드로 실행하고, 상태 변화를 자동으로 반영해요.
웹 앱 실행하기
웹 앱을 실행하기 위해서는 터미널에서 아래 명령어를 입력해요.
bash
python app.py
그 후 브라우저에서 http://127.0.0.1:5000/
에 접속하면 “안녕하세요! Flask 웹 앱에 오신 것을 환영합니다.”라는 문구를 볼 수 있게 되죠.
기본적인 HTML 페이지 구현하기
다음 단계로는 HTML 페이지를 반환하는 기능을 추가해 보아요.
-
템플릿 폴더 생성:
bash
mkdir templates
-
templates
폴더 안에index.
파일을 만들고, 아래 내용을 입력해요.< lang=”ko”>
Flask 웹 앱
안녕하세요! Flask 웹 앱에 오신 것을 환영합니다.
-
app.py
를 수정하여 HTML 페이지를 반환하도록 해요.
python
from flask import Flask, render_templateapp = Flask(name)
@app.route(‘/’)
def home():
return render_template(‘index.’)if name == ‘main‘:
app.run(debug=True)
코드 설명
render_template
함수는 HTML 파일을 반환해요. 이제 브라우저에서 기본 HTML 페이지를 볼 수 있게 되었죠.
Flask의 라우팅과 URL 빌딩
Flask의 강력한 기능 중 하나는 라우팅과 URL 빌딩이에요. 여러 페이지가 있는 웹 앱을 만들기 위해 다양한 URL을 정의할 수 있어요.
URL 생성하기
-
추가적인 경로 정의:
python
@app.route('/about')
def about():
return "이곳은 Flask 웹 앱의 소개 페이지입니다."
-
브라우저에서
http://127.0.0.1:5000/about
에 접속하면 “이곳은 Flask 웹 앱의 소개 페이지입니다.”라는 메시지를 볼 수 있어요.
데이터 처리하기: 폼과 요청
Flask를 사용하면 사용자의 입력 정보를 쉽게 처리할 수 있어요.
간단한 HTML 폼 만들기
-
index.
파일을 수정하여 폼을 추가해요. -
app.py
에서 폼 데이터를 처리하는 경로를 추가해요.
python
from flask import request@app.route(‘/submit’, methods=[‘POST’])
def submit():
username = request.form[‘username’]
return f”안녕하세요, {username}님!”
코드 설명
- HTML 폼은 사용자가 이름을 입력할 수 있게 해줘요.
- 사용자가 폼을 제출하면,
/submit
경로로 데이터가 전송되고, Flask가 사용자 이름을 읽어 응답을 반환해요.
데이터베이스 연동하기
대부분의 웹 앱에서는 데이터를 저장해야 하므로 데이터베이스와의 연동도 고려해야 해요. Flask에서는 SQLAlchemy와 같은 ORM(Object-Relational Mapping) 라이브러리를 사용하여 데이터베이스 작업을 간단하게 처리할 수 있어요.
SQLAlchemy 설치하기
bash
pip install Flask-SQLAlchemy
간단한 데이터베이스 모델 정의
-
app.py
에 SQLAlchemy 설정 추가:
python
from flask_sqlalchemy import SQLAlchemyapp.config[‘SQLALCHEMYDATABASEURI’] = ‘sqlite:///site.db’
db = SQLAlchemy(app) -
사용자 모델 정의:
python
class User(db.Model):
id = db.Column(db.Integer, primary_key=True)
username = db.Column(db.String(80), nullable=False)def __repr__(self): return f"User('{self.username}')"
데이터베이스 초기화 및 사용자 추가 예시
-
데이터베이스 생성 및 초기화:
python
db.create_all() # 데이터베이스와 테이블 생성
-
사용자 추가:
python
new_user = User(username='홍길동')
db.session.add(new_user)
db.session.commit()
마무리
위의 내용을 통해 Flask를 사용하여 간단한 웹 애플리케이션을 만드는 방법을 배우셨을 거예요. Flask는 유연하고 다양한 기능이 있어 여러분의 웹 개발 여정에 큰 도움이 될 거예요. 처음에는 간단한 것부터 시작한 뒤 차츰 더 복잡한 기능을 추가해 보세요.
지금까지 배운 내용을 바탕으로 자신만의 웹 애플리케이션 프로젝트에 도전해 보세요. 누군가 여러분의 웹 앱을 사용하는 모습을 상상하면서 작업하세요.
요약
항목 | 설명 |
---|---|
Flask | 파이썬으로 작성된 마이크로 웹 프레임워크 |
설치 방법 | pip install Flask |
기본 구조 | Flask 앱을 생성하고 라우팅을 정의 |
데이터베이스 연동 | Flask-SQLAlchemy를 사용 |
Flask로 자신만의 웹 애플리케이션을 만들어 보세요!