Flask는 Python으로 간단하고 빠르게 웹 애플리케이션을 만들 수 있는 마이크로 웹 프레임워크입니다. Flask의 기본적인 사용법을 단계별로 설명드리겠습니다.
1. Flask 기본 설정
Flask 애플리케이션을 생성하려면 먼저 Flask 라이브러리를 설치해야 합니다. 설치가 끝나면 다음과 같이 간단한 웹 서버를 구성할 수 있습니다.
app = Flask(__name__)
: Flask 애플리케이션 객체를 만듭니다.@app.route("/")
: 경로 설정으로,"/"
URL로 접속 시home()
함수가 실행됩니다.app.run(debug=True)
: Flask 서버를 시작합니다.
2. 라우팅
Flask에서 URL을 관리하려면 라우팅을 설정합니다. 다양한 경로를 @app.route()
데코레이터로 설정할 수 있으며, 동적 URL도 설정할 수 있습니다.
/hello
경로에 접속 시 “Hello, World!”를 반환합니다./user/<username>
경로는username
을 매개변수로 받아 동적으로 사용자 페이지를 표시합니다.
3. 템플릿 사용
HTML을 직접 반환하는 대신 Jinja2 템플릿을 사용하여 HTML 파일을 렌더링할 수 있습니다. 템플릿 파일은 프로젝트의 templates
폴더에 위치시킵니다.
프로젝트 구조
템플릿 파일 (templates/index.html)
Flask에서 템플릿 렌더링
render_template()
함수는templates/
폴더에서 지정한 템플릿 파일을 렌더링합니다.- 템플릿 파일에서
{{ name }}
을 사용해 Python 데이터를 HTML로 전달할 수 있습니다.
4. HTTP 메서드 처리
Flask에서는 GET, POST와 같은 HTTP 메서드에 따라 다른 처리를 할 수 있습니다. POST 메서드를 사용하여 데이터를 제출하거나 요청을 처리하는 기능을 만들어보겠습니다.
request
객체를 사용하여 GET 또는 POST 요청에서 데이터를 가져옵니다.request.form
은 HTML 폼 데이터에 접근합니다.
5. 리다이렉트와 URL 생성
사용자를 다른 페이지로 리다이렉트하거나, URL을 생성할 때 redirect()
와 url_for()
함수를 사용할 수 있습니다.
url_for("함수명")
을 사용하여 해당 함수로 연결된 URL을 생성하고redirect()
로 해당 경로로 리다이렉트할 수 있습니다.
6. 플라스크에서 데이터베이스 연동
Flask는 데이터베이스 연동 시 Flask-SQLAlchemy를 주로 사용합니다. SQLAlchemy는 Python의 ORM 라이브러리로, 데이터베이스와 쉽게 연동할 수 있습니다.
app.py
db.create_all()
을 통해 모델에 기반한 데이터베이스 테이블을 생성합니다.- SQLAlchemy를 사용하여 데이터를 삽입, 조회, 업데이트, 삭제할 수 있습니다.
7. Flask 실행
Flask 애플리케이션을 실행하려면 다음과 같이 실행할 수 있습니다.
또는 Python으로 직접 실행할 수도 있습니다.
요약
Flask를 사용하여 기본적인 웹 애플리케이션을 구축할 수 있습니다. 핵심 개념으로는 라우팅, 템플릿 렌더링, HTTP 요청 처리, 리다이렉트와 URL 생성 등이 있으며, SQLAlchemy와 같은 ORM을 활용하여 데이터베이스 연동도 할 수 있습니다. Flask는 필요에 따라 확장성을 높일 수 있어, 소규모 프로젝트에서 대규모 프로젝트로 확장할 때도 매우 유용한 프레임워크입니다.