Akashic Records

8.3 웹 프레임워크 본문

Python for Beginners

8.3 웹 프레임워크

Andrew's Akashic Records 2023. 3. 24. 11:25
728x90

파이썬 웹 프레임워크는 웹 애플리케이션 개발을 더 쉽게 만들어주는 도구입니다. 일반적으로 HTTP 요청 처리, URL 라우팅, 데이터베이스 연동, 보안 및 세션 관리 등과 같은 웹 개발에 필요한 기능을 제공합니다. 대표적인 파이썬 웹 프레임워크로는 Flask, Django, FastAPI 등이 있습니다.

 

프레임워크의 기능과 특징에 대해 좀 더 자세히 설명하겠습니다.

1. Flask:

  • Flask는 마이크로 프레임워크로, 웹 애플리케이션을 개발하는 데 필요한 기본 기능만 제공합니다. 이는 코드 베이스를 작게 유지하고 필요한 기능만 추가하여 애플리케이션을 작성할 수 있음을 의미합니다.
  • Flask는 다양한 확장을 지원하여 필요한 기능을 쉽게 추가할 수 있습니다. 예를 들어, 데이터베이스 작업을 위해 Flask-SQLAlchemy, 사용자 인증을 위해 Flask-Login 등을 사용할 수 있습니다.
  • Flask는 빠른 프로토타이핑과 작은 규모의 웹 애플리케이션 개발에 적합합니다.
    공식 문서: https://flask.palletsprojects.com/en/2.1.x/

2. Django:

  • Django는 "배터리 포함" 웹 프레임워크로, 웹 개발에 필요한 대부분의 기능을 포함하고 있습니다.
    장고의 ORM(Object-Relational Mapping)은 데이터베이스 작업을 더 쉽게 할 수 있도록 도와줍니다. 다양한 데이터베이스 시스템을 지원하며, 데이터베이스 마이그레이션도 간편하게 처리할 수 있습니다.
  • Django는 강력한 관리자 인터페이스를 제공합니다. 이를 사용하면 웹 애플리케이션의 데이터를 관리하고 수정할 수 있습니다.
  • Django는 큰 규모의 웹 애플리케이션 개발에 적합하며, 웹 개발에 필요한 대부분의 기능이 이미 구현되어 있습니다.
    공식 문서: https://docs.djangoproject.com/en/4.1/

3. FastAPI:

  • FastAPI는 현대적인 웹 프레임워크로, 파이썬의 타입 힌트를 사용하여 API 문서와 유효성 검사를 자동으로 생성합니다.
  • FastAPI는 Starlette(비동기 웹 프레임워크)와 Pydantic(데이터 유효성 검사 라이브러리)를 기반으로 구축되어 있습니다.
  • FastAPI는 동시성 처리를 위해 Python의 asyncio를 지원하며, 웹 소켓을 사용한 실시간 애플리케이션을 쉽게 구현할 수 있습니다.
  • FastAPI는 빠른 API 개발과 실시간 애플리케이션 개발에 적합합니다.

Flask

Flask는 웹 개발에 필요한 기본 기능만 포함한 경량 프레임워크입니다. Flask는 확장 가능한 구조를 가지고 있어, 개발자가 필요한 기능을 직접 구현하거나 서드파티 확장을 사용할 수 있습니다.

Flask 샘플 코드:

from flask import Flask, jsonify

app = Flask(__name__)

@app.route('/')
def hello_world():
    return jsonify(message="Hello, World!")

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

Django

Django는 거의 모든 웹 개발 기능을 포함한 고성능 웹 프레임워크입니다. 장고는 강력한 관리자 인터페이스, 폼 처리, 인증 및 권한 관리, 데이터베이스 스키마 마이그레이션 등과 같은 고급 기능을 제공합니다.

Django 샘플 코드:

먼저, Django 프로젝트와 애플리케이션을 생성합니다.

django-admin startproject myproject
cd myproject
python manage.py startapp myapp

myapp/views.py 파일에 뷰를 작성합니다.

from django.http import JsonResponse

def hello_world(request):
    return JsonResponse({"message": "Hello, World!"})

myapp/urls.py 파일에 URL 패턴을 정의합니다.

from django.urls import path
from . import views

urlpatterns = [
    path('', views.hello_world, name='hello_world')
]

myproject/urls.py 파일에 애플리케이션 URL 패턴을 추가합니다.

from django.contrib import admin
from django.urls import path, include

urlpatterns = [
    path('admin/', admin.site.urls),
    path('', include('myapp.urls')),
]

마지막으로, 서버를 실행합니다.

python manage.py runserver

FastAPI

FastAPI는 현대적이고 빠른 웹 프레임워크로, 파이썬의 타입 힌트를 사용하여 API 문서와 유효성 검사를 자동으로 생성할 수 있습니다. FastAPI는 asyncio를 지원하여 동시성 처리를 간단하게 구현할 수 있습니다.

 

FastAPI 샘플 코드:

from fastapi import FastAPI
from pydantic import BaseModel

app = FastAPI()

class Message(BaseModel):
message: str

@app.get("/", response_model=Message)
def hello_world():
    return {"message": "Hello, World!"}

if __name__ == '__main__':
    import uvicorn
    uvicorn.run(app, host="0.0.0.0", port=8000)

 

위의 샘플 코드들은 각 프레임워크를 사용하여 간단한 "Hello, World!" 메시지를 반환하는 웹 애플리케이션을 작성한 것입니다. 원하는 웹 프레임워크를 선택하고 공식 문서를 참고하여 프로젝트를 시작해 보세요.

728x90

'Python for Beginners' 카테고리의 다른 글

9.2 판다스(Pandas)  (0) 2023.03.27
9.1 넘파이(Numpy)  (0) 2023.03.27
8.2 웹 개발 API 사용법  (0) 2023.03.24
8.1 웹 스크래핑  (0) 2023.03.24
7.5 기타 유용한 라이브러리  (0) 2023.03.23
Comments