본문 바로가기

카테고리 없음

Flask와 DB 통합으로 나만의 웹앱 만들기

Flask와 데이터베이스 연동으로 간단 웹앱 구현하기

오늘날 웹 애플리케이션은 매우 다양한 분야에서 사용되며, 사용자에게 정보를 제공하거나 데이터를 수집하는 등의 역할을 합니다. 웹 애플리케이션을 만들기 위해서는 여러 가지 기술과 도구가 필요합니다. 그 중 Flask는 파이썬 환경에서 간단하게 웹 애플리케이션을 구축할 수 있도록 돕는 마이크로 프레임워크입니다. 본 글에서는 Flask를 이용하여 데이터베이스와 연동되는 간단한 웹 애플리케이션을 만드는 방법에 대해 알아보겠습니다.

Flask란 무엇인가?

Flask는 파이썬으로 작성된 경량 웹 프레임워크이며, WSGI(Web Server Gateway Interface)를 기반으로 합니다. Flask의 주요 특징은 다음과 같습니다.

  • 단순성: 간단한 사용법과 직관적인 API를 제공합니다.
  • 유연성: 필요한 모듈을 선택하여 사용할 수 있는 옵션이 많습니다.
  • 확장성: 필요에 따라 다양한 플러그인과 라이브러리를 사용할 수 있습니다.
  • 커뮤니티 지원: 활발한 커뮤니티가 있어 다양한 자료와 도움을 받을 수 있습니다.

데이터베이스란 무엇인가?

데이터베이스는 데이터를 구조화하여 저장하는 시스템입니다. 웹 애플리케이션에서 데이터베이스는 사용자 정보를 저장하거나 애플리케이션에서 생성된 데이터를 유지하는 데 필수적입니다. 대표적인 데이터베이스 관리 시스템(DBMS)에는 다음과 같은 것들이 있습니다.

  • MySQL
  • PostgreSQL
  • SQLite
  • MongoDB

Flask와 데이터베이스 연동 준비하기

필요한 패키지 설치하기

웹 애플리케이션을 개발하기 위해 먼저 Flask와 데이터베이스를 연동하기 위한 패키지를 설치해야 합니다. 이를 위해 아래의 명령어를 사용합니다.

pip install Flask Flask-SQLAlchemy

Flask 애플리케이션 구조설계

웹 애플리케이션의 구조를 설계해야 합니다. 기본적으로 Flask 애플리케이션은 다음과 같은 구조를 가집니다.

/myapp ├── app.py ├── models.py ├── templates │ └── index. └── static

  • app.py: 애플리케이션의 주요 파일입니다.
  • models.py: 데이터베이스 모델을 정의합니다.
  • templates: HTML 템플릿 파일이 저장되는 폴더입니다.
  • static: CSS, JavaScript, 이미지 같은 정적 파일이 저장되는 폴더입니다.

Flask 애플리케이션 구현하기

1. 기본 애플리케이션 생성하기

먼저app.py 파일을 열고 아래의 코드를 작성하여 기본 Flask 애플리케이션을 만들어보겠습니다.

from flask import Flask

app = Flask(name)

@app.route('/')
def index():
    return '안녕하세요, Flask 웹 애플리케이션입니다!'

if name == 'main':
    app.run(debug=True)

위의 코드는 Flask 애플리케이션을 초기화하고, 기본적인 라우트를 설정한 것입니다.

2. 데이터베이스 설정하기

이제, 데이터베이스를 설정할 차례입니다. models.py 파일을 생성하고, SQLAlchemy를 사용하여 기본 모델을 정의합니다.

from flask_sqlalchemy import SQLAlchemy
from app import app

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)

    def repr(self):
        return '' % self.username

모델을 정의한 후, 초기 데이터베이스를 생성하기 위해 app.py에 다음과 같은 코드를 추가합니다.

with app.app_context():
    db.create_all()

3. 데이터 입력 및 출력 기능 추가하기

사용자 정보를 입력하고 출력할 수 있도록 라우트를 추가합니다. app.py 파일을 수정하여 다음과 같이 작성합니다.

from flask import request, render_template

@app.route('/user', methods=['GET', 'POST'])
def user():
    if request.method == 'POST':
        username = request.form['username']
        email = request.form['email']
        new_user = User(username=username, email=email)
        db.session.add(new_user)
        db.session.commit()
    users = User.query.all()
    return render_template('index.', users=users)

4. HTML 템플릿 작성하기

이제 templates/index. 파일을 작성하여 사용자 정보를 입력할 수 있는 HTML 폼을 만듭니다.

<!doctype >
< lang="ko">
    
    사용자 관리

사용자 정보 입력
        사용자 이름:
        
        이메일:
        
        등록
    등록된 사용자 목록
        {% for user in users %}{{ user.username }}{{ user.email }}
        {% endfor %}
    

</>

Flask와 데이터베이스 연동 테스트하기

이제 모든 코드가 준비되었습니다. Flask 애플리케이션을 실행해보면 됩니다. 다음 명령어로 애플리케이션을 실행합니다.

python app.py

브라우저에서 http://127.0.0.1:5000/user 주소로 접속하면 사용자 정보를 입력할 수 있는 폼과 등록된 사용자 목록이 표시됩니다. 여기서 사용자의 이름과 이메일을 입력하고 등록 버튼을 클릭하면 해당 정보가 데이터베이스에 저장됩니다.

결론

이번 글에서는 Flask와 SQLAlchemy를 이용하여 간단한 웹 애플리케이션을 만드는 방법에 대해 알아보았습니다. 기본적인 구성 요소와 기능을 포함하여 데이터베이스와 연동하는 방법을 설명했습니다. 이를 통해 웹 애플리케이션 개발의 기초를 익힐 수 있었기를 바랍니다.

향후 더 발전된 웹 애플리케이션을 만들기 위해 Flask의 다양한 기능들과 데이터베이스의 활용 방법을 계속해서 학습해보시기 바랍니다.