[웹 개발/Flaks] Flask 기초

집중맞은 도둑력·2024년 2월 23일

웹 개발

목록 보기
4/14
post-thumbnail

0. 🔖 목차


  1. Flask 개념
  2. Flask 구조
    2-1. 폴더 구조
    2-2. 코드 구조

1. Flask 개념


1-1. 개념

Python 기반의 마이크로 웹 프레임워크.

"마이크로"는 Flask가 최소한의 기본 기능만을 제공하며, 필요에 따라 다양한 확장 기능을 추가할 수 있다는 의미.

Flask는 웹 애플리케이션 개발을 위해 경량화되어 설계되었으며, 신속한 개발과 간단한 API에 초점을 맞추고 있다.

Flask의 특징
1. 경량화 및 확장 가능: Flask는 기본적인 웹 서버와 함께 라우팅, 템플릿 엔진 등 필수적인 기능만을 포함하고 있다. 추가적인 기능은 확장을 통해 구현 가능.
2. Jinja2 템플릿 엔진: Flask는 Jinja2 템플릿을 사용하여 동적 웹 페이지를 쉽게 생성할 수 있다.
3. 개발 서버 및 디버거: 내장된 개발 서버와 디버거를 제공하여, 개발 과정을 간편하게 하고, 오류를 쉽게 추적할 수 있다.
4. WSGI(ref) 호환: Flask는 WSGI 웹 애플리케이션 표준을 준수한다.
5. RESTful 요청 처리: Flask는 REST API 개발을 쉽게 할 수 있도록 요청 메서드(GET, POST, PUT, DELETE 등)에 따라 라우트를 쉽게 정의할 수 있다.

2. Flask 구조


2-1. 폴더 구조

/your-flask-app
    /static
        /css
        /js
        /images
    /templates
        layout.html
        index.html
        login.html
    app.py
    requirements.txt
  • static: CSS, JavaScript 파일, 이미지 등 정적 파일을 저장하는 디렉토리.
  • templates: Jinja2 템플릿 파일(HTML)을 저장하는 디렉토리. Flask는 이 폴더 내의 파일을 렌더링하여 사용자에게 제공.
  • app.py: Flask 애플리케이션의 메인 파일. 여기서 라우트, 애플리케이션 설정 등을 정의.
  • requirements.txt: 프로젝트에 필요한 Python 패키지를 나열하는 파일. 다른 개발 환경에서도 동일한 환경을 쉽게 구축 가능.

2-2. 코드 구조

from flask import Flask, render_template

app = Flask(__name__)

@app.route('/')
def home():
    return render_template('index.html')

if __name__ == '__main__':
    app.run(debug=True)
  • Flask(name): Flask 인스턴스 생성
  • @app.route('/'): URL 라우트를 정의. 사용자가 이 경로에 접근하면, home 함수가 호출된다.
  • render_template('index.html'): templates 폴더 내의 index.html 템플릿 파일을 렌더링.
  • app.run(debug=True): 개발 서버를 시작하고, 디버그 모드를 활성화.
profile
틀린_내용이_있다면_말해주세요.

0개의 댓글