[Python]웹 개발 시작하기: Flask 프레임워크 입문

웹 개발은 현대 소프트웨어 개발의 중요한 부분입니다. 다양한 언어와 프레임워크가 존재하지만, Python은 그 간결함과 강력한 기능으로 인해 많은 개발자들에게 사랑받고 있습니다. 이번 글에서는 Python을 사용한 웹 개발, 특히 Flask 프레임워크 입문에 대한 글을 써 보겠습니다.

1. Flask란 무엇인가?

Flask는 Python으로 작성된 마이크로 웹 프레임워크입니다. ‘마이크로’라는 이름답게 Flask는 최소한의 코드로 웹 애플리케이션을 구축할 수 있도록 설계되었습니다. 그러나 이는 Flask가 기능적으로 제한적이라는 의미가 아닙니다. 오히려 Flask는 필요에 따라 다양한 확장 기능을 추가할 수 있도록 유연하게 설계되어 있습니다.

2. Flask의 장점

  1. 간결함과 유연성: Flask는 개발자가 필요로 하는 기능만을 선택적으로 사용할 수 있게 합니다. 이는 프로젝트에 따라 맞춤형 웹 애플리케이션을 쉽게 구축할 수 있도록 합니다.
  2. 강력한 커뮤니티와 확장성: Flask는 많은 개발자들에 의해 사용되고 있으며, 다양한 확장 기능이 커뮤니티에 의해 제공되고 있습니다. 이러한 확장 기능들은 데이터베이스, 인증, 양식 처리 등 다양한 기능을 손쉽게 구현할 수 있게 도와줍니다.
  3. 학습 곡선이 낮다: Flask는 상대적으로 간단한 구조를 가지고 있어, 웹 개발을 처음 접하는 사람도 쉽게 배울 수 있습니다.

3. Flask 설치하기

Flask를 사용하기 위해서는 먼저 Python과 pip가 설치되어 있어야 합니다. 이후 아래의 명령어를 사용해 Flask를 설치할 수 있습니다.

pip install Flask

4. 첫 번째 Flask 애플리케이션 만들기

Flask 애플리케이션을 만드는 것은 매우 간단합니다. 다음은 간단한 “Hello, World!” 애플리케이션의 예제입니다.

from flask import Flask

app = Flask(__name__)

@app.route('/')
def hello():
return "Hello, World!"

if __name__ == '__main__':
app.run(debug=True)

이 코드를 app.py라는 파일로 저장하고, 터미널에서 python app.py를 실행하면 로컬 서버가 시작됩니다. 웹 브라우저에서 http://127.0.0.1:5000/에 접속하면 “Hello, World!” 메시지를 볼 수 있습니다.

5. Flask의 주요 기능

5.1. 라우팅

라우팅은 URL과 함수(뷰)를 연결하는 작업입니다. 위 예제에서 @app.route('/') 데코레이터는 루트 URL (‘/’)에 접속하면 hello 함수가 실행되도록 설정합니다.

5.2. 템플릿 렌더링

Flask는 Jinja2라는 템플릿 엔진을 사용하여 HTML 파일을 렌더링합니다. 예를 들어, 다음과 같이 templates 폴더에 index.html 파일을 생성합니다.

<!-- templates/index.html -->
<!doctype html>
<html>
<head>
<title>Hello</title>
</head>
<body>
<h1>Hello, {{ name }}!</h1>
</body>
</html>

그리고 이를 렌더링하는 Flask 코드는 다음과 같습니다.

from flask import render_template

@app.route('/hello/<name>')
def hello_name(name):
return render_template('index.html', name=name)

/hello/Flask에 접속하면 “Hello, Flask!”라는 메시지가 표시됩니다.

5.3. 폼 처리

웹 애플리케이션에서 폼 데이터를 처리하는 것은 매우 일반적인 작업입니다. Flask에서는 request 객체를 사용하여 폼 데이터를 처리할 수 있습니다.

from flask import request

@app.route('/submit', methods=['POST'])
def submit():
username = request.form['username']
return f"Hello, {username}!"

HTML 폼을 통해 데이터를 제출하고 이를 처리할 수 있습니다.

<!-- templates/form.html -->
<!doctype html>
<html>
<body>
<form action="/submit" method="post">
<label for="username">Username:</label>
<input type="text" id="username" name="username">
<input type="submit" value="Submit">
</form>
</body>
</html>

6. 데이터베이스 연동

Flask는 다양한 데이터베이스를 연동할 수 있도록 지원합니다. 일반적으로 SQLAlchemy와 같은 ORM(Object Relational Mapping) 라이브러리를 사용합니다. SQLAlchemy를 사용하면 데이터베이스 작업을 더욱 쉽게 할 수 있습니다.

pip install flask_sqlalchemy

다음은 간단한 예제입니다.

from flask_sqlalchemy import SQLAlchemy

app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///test.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)

def __repr__(self):
return f'<User {self.username}>'

db.create_all()

결론

Flask는 Python으로 웹 애플리케이션을 개발할 때 매우 유용한 프레임워크입니다. 간단한 설치와 사용법, 강력한 확장성 덕분에 초보자부터 전문가까지 모두에게 적합합니다. Flask를 통해 웹 개발의 세계에 입문하고, 더 복잡한 애플리케이션을 구축해보세요. 여러분의 창의력을 발휘해 멋진 웹 애플리케이션을 만들어보시길 바랍니다.

이 게시물이 얼마나 유용했습니까?

평가하려면 별표를 클릭하세요.

평균 평점 5 / 5. 투표 수: 45

지금까지 투표 한 사람이 없습니다. 가장 먼저 게시물을 평가해 보세요.

Leave a Comment

error: 우클릭 할 수 없습니다.