파이썬과 Flask로 간단한 웹 앱 만들기: 기초부터 실전까지

파이썬과 Flask로 간단한 웹 앱 만들기: 기초부터 실전까지

웹 개발은 이제 누구나 쉽게 접근할 수 있으며, Flask는 파이썬으로 웹 애플리케이션을 만들 때 매우 유용한 프레임워크 에요. Flask를 사용하면 소규모 프로젝트부터 대규모 웹 애플리케이션까지 다양하게 개발할 수 있는데요, 특히 입문자에게 적합한 이유는 그 간결함과 직관적인 사용법 때문이에요. 이번 포스팅에서는 Flask를 사용하여 간단한 웹 앱을 만드는 방법에 대해 자세히 설명해 드릴게요.

Flask란 무엇인가?

Flask는 파이썬으로 작성된 마이크로 웹 프레임워크에요. “마이크로”라는 용어는 이 프레임워크가 간소화된 구조를 가지고 있다는 것을 의미해요. 필요한 최소한의 기능만 제공하고, 추가적인 기능은 필요에 따라 확장할 수 있도록 설계되어 있죠. Flask는 간단한 사용법과 유연한 구조 덕분에 매우 큰 커뮤니티와 생태계를 가지고 있어요.

Flask의 주요 특징

  • 간단함: Flask는 매우 직관적으로 설계되어 있어요.
  • 확장성: 필요에 따라 다양한 플러그인을 추가할 수 있어요.
  • 유연성: 고정된 구조가 없어서 개발자가 원하는 대로 프로젝트를 구성할 수 있어요.

Flask 설치하기

Flask를 사용하기 위해서는 먼저 Python이 설치되어 있어야 해요. Python은 공식 웹사이트에서 다운로드할 수 있어요.

  1. Python 다운로드:
  2. Flask 설치:
    bash
    pip install Flask

간단한 Flask 웹 앱 만들기

이제 Flask를 설치했으니, 기본적인 웹 앱을 만들어 볼 거예요. 아래 예시를 통해 Flask의 기본적인 사용법을 알아보도록 할게요.

기본 웹 앱 구성

  1. 프로젝트 폴더를 만들고 이동해요.
    bash
    mkdir my_flask_app
    cd my_flask_app

  2. 파이썬 파일을 생성해요.
    bash
    touch app.py

  3. app.py 파일을 열고 아래 코드를 입력해요.
    python
    from flask import Flask

    app = 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 페이지를 반환하는 기능을 추가해 보아요.

  1. 템플릿 폴더 생성:
    bash
    mkdir templates

  2. templates 폴더 안에 index. 파일을 만들고, 아래 내용을 입력해요.

    < lang=”ko”>


    Flask 웹 앱

    안녕하세요! Flask 웹 앱에 오신 것을 환영합니다.

  3. app.py를 수정하여 HTML 페이지를 반환하도록 해요.
    python
    from flask import Flask, render_template

    app = 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 생성하기

  1. 추가적인 경로 정의:
    python
    @app.route('/about')
    def about():
    return "이곳은 Flask 웹 앱의 소개 페이지입니다."

  2. 브라우저에서 http://127.0.0.1:5000/about에 접속하면 “이곳은 Flask 웹 앱의 소개 페이지입니다.”라는 메시지를 볼 수 있어요.

데이터 처리하기: 폼과 요청

Flask를 사용하면 사용자의 입력 정보를 쉽게 처리할 수 있어요.

간단한 HTML 폼 만들기

  1. index. 파일을 수정하여 폼을 추가해요.



  2. 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

간단한 데이터베이스 모델 정의

  1. app.py에 SQLAlchemy 설정 추가:
    python
    from flask_sqlalchemy import SQLAlchemy

    app.config[‘SQLALCHEMYDATABASEURI’] = ‘sqlite:///site.db’
    db = SQLAlchemy(app)

  2. 사용자 모델 정의:
    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}')"
    

데이터베이스 초기화 및 사용자 추가 예시

  1. 데이터베이스 생성 및 초기화:
    python
    db.create_all() # 데이터베이스와 테이블 생성

  2. 사용자 추가:
    python
    new_user = User(username='홍길동')
    db.session.add(new_user)
    db.session.commit()

마무리

위의 내용을 통해 Flask를 사용하여 간단한 웹 애플리케이션을 만드는 방법을 배우셨을 거예요. Flask는 유연하고 다양한 기능이 있어 여러분의 웹 개발 여정에 큰 도움이 될 거예요. 처음에는 간단한 것부터 시작한 뒤 차츰 더 복잡한 기능을 추가해 보세요.

지금까지 배운 내용을 바탕으로 자신만의 웹 애플리케이션 프로젝트에 도전해 보세요. 누군가 여러분의 웹 앱을 사용하는 모습을 상상하면서 작업하세요.

요약

항목 설명
Flask 파이썬으로 작성된 마이크로 웹 프레임워크
설치 방법 pip install Flask
기본 구조 Flask 앱을 생성하고 라우팅을 정의
데이터베이스 연동 Flask-SQLAlchemy를 사용

Flask로 자신만의 웹 애플리케이션을 만들어 보세요!