Python Web Development Basics


12.  웹 개발 기초(Web Development Basics)

Flask를 이용한 웹 애플리케이션 개발 기초 (Basic Web Application Development with Flask)

Flask는 Python으로 작성된 경량 웹 프레임워크로, 간단하고 유연한 웹 애플리케이션을 개발할 수 있게 해줍니다. 기본적인 웹 애플리케이션을 만드는 방법을 살펴보겠습니다.

먼저 Flask를 설치합니다.

pip install Flask

기본적인 Flask 애플리케이션은 다음과 같이 구성됩니다.

from flask import Flask

app = Flask(__name__)

@app.route('/')
def home():
    return "Hello, Flask!"

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

위 코드는 간단한 Flask 애플리케이션을 정의합니다. @app.route('/') 데코레이터는 루트 URL (/)에 대해 home 함수를 실행하도록 설정합니다. app.run(debug=True)는 디버그 모드에서 애플리케이션을 실행합니다.

Django를 이용한 웹 애플리케이션 개발 기초 (Basic Web Application Development with Django)

Django는 Python으로 작성된 강력한 웹 프레임워크로, 대규모 웹 애플리케이션을 개발하는 데 적합합니다. Django 프로젝트를 생성하고 간단한 애플리케이션을 만드는 방법을 살펴보겠습니다.

먼저 Django를 설치합니다.

pip install Django

새로운 Django 프로젝트를 생성합니다.

django-admin startproject myproject
cd myproject

이제 애플리케이션을 생성합니다.

python manage.py startapp myapp

myapp 디렉토리의 views.py 파일을 다음과 같이 수정합니다.

from django.http import HttpResponse

def home(request):
    return HttpResponse("Hello, Django!")

프로젝트의 urls.py 파일을 다음과 같이 수정하여 home 뷰를 연결합니다.

from django.contrib import admin
from django.urls import path
from myapp import views

urlpatterns = [
    path('admin/', admin.site.urls),
    path('', views.home),
]

애플리케이션을 실행합니다.

python manage.py runserver

이제 브라우저에서 http://127.0.0.1:8000/에 접속하면 “Hello, Django!” 메시지를 확인할 수 있습니다.

HTTP 프로토콜과 RESTful API (HTTP Protocol and RESTful API)

HTTP는 웹 상에서 데이터를 주고받기 위한 프로토콜입니다. 클라이언트가 서버에 요청을 보내고, 서버가 응답을 반환하는 방식으로 동작합니다. RESTful API는 HTTP 프로토콜을 사용하여 자원(Resource)을 정의하고 조작하는 방법론입니다.

HTTP 요청 메서드

  • GET: 서버에서 데이터를 조회합니다.
  • POST: 서버에 데이터를 생성합니다.
  • PUT: 서버의 데이터를 수정합니다.
  • DELETE: 서버의 데이터를 삭제합니다.

RESTful API 예제

Flask를 사용하여 간단한 RESTful API를 만들어 보겠습니다.

from flask import Flask, jsonify, request

app = Flask(__name__)

# 샘플 데이터
users = [
    {'id': 1, 'name': 'Alice'},
    {'id': 2, 'name': 'Bob'}
]

@app.route('/users', methods=['GET'])
def get_users():
    return jsonify(users)

@app.route('/users/<int:user_id>', methods=['GET'])
def get_user(user_id):
    user = next((u for u in users if u['id'] == user_id), None)
    if user:
        return jsonify(user)
    return jsonify({'error': 'User not found'}), 404

@app.route('/users', methods=['POST'])
def create_user():
    new_user = request.get_json()
    users.append(new_user)
    return jsonify(new_user), 201

@app.route('/users/<int:user_id>', methods=['PUT'])
def update_user(user_id):
    user = next((u for u in users if u['id'] == user_id), None)
    if user:
        data = request.get_json()
        user.update(data)
        return jsonify(user)
    return jsonify({'error': 'User not found'}), 404

@app.route('/users/<int:user_id>', methods=['DELETE'])
def delete_user(user_id):
    global users
    users = [u for u in users if u['id'] != user_id]
    return '', 204

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

위 예제에서 /users 엔드포인트는 GET 요청으로 모든 사용자를 조회하고, POST 요청으로 새로운 사용자를 생성합니다. /users/<user_id> 엔드포인트는 GET 요청으로 특정 사용자를 조회하고, PUT 요청으로 사용자를 업데이트하며, DELETE 요청으로 사용자를 삭제합니다.

이와 같이 Flask와 Django를 사용하여 웹 애플리케이션을 개발하고, RESTful API를 구현할 수 있습니다. HTTP 프로토콜과 RESTful API의 개념을 이해하면, 클라이언트-서버 간의 데이터 통신을 효율적으로 설계할 수 있습니다.


Leave a Reply

Your email address will not be published. Required fields are marked *