Python은 웹 개발에 있어 강력한 도구로 자리 잡았습니다. Flask와 Django 같은 프레임워크를 통해 강력한 웹 애플리케이션을 개발할 수 있으며, 간단한 웹 서버를 구축하는 것도 Python만으로 가능합니다. 이 글에서는 Python을 사용하여 기본적인 웹 서버를 구축하는 방법을 소개하고, Flask를 활용한 간단한 웹 애플리케이션 개발 과정을 탐구하겠습니다.
Python의 기본 HTTP 서버
Python에 내장된 http.server 모듈은 간단한 HTTP 서버를 빠르게 구축할 수 있는 기능을 제공합니다. 개발 단계에서 정적 파일을 호스팅하거나 간단한 API를 제공하는 데 유용합니다.
import http.server
import socketserver
PORT = 8000
Handler = http.server.SimpleHTTPRequestHandler
with socketserver.TCPServer(("", PORT), Handler) as httpd:
print(f"Serving at port {PORT}")
httpd.serve_forever()
이 코드는 현재 디렉토리의 파일을 호스팅하는 웹 서버를 생성합니다. 브라우저를 통해 localhost:8000에 접속하면, 현재 폴더의 내용을 웹 페이지로 볼 수 있습니다.
Flask를 사용한 웹 서버 구축
Flask는 Python에서 가장 인기 있는 마이크로 웹 프레임워크 중 하나로, 간결하면서도 강력한 웹 애플리케이션을 빠르게 구축할 수 있습니다. Flask는 라우팅, 템플릿, 웹 폼 처리 등 웹 개발에 필요한 기본적인 기능을 제공합니다.
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는 개발 서버를 시작하고 localhost:5000에서 액세스할 수 있습니다. home 함수는 루트 URL (/)에 대한 요청을 처리하고, "Hello, Flask!" 문자열을 반환합니다.
Flask 앱의 확장
Flask 애플리케이션은 필요에 따라 확장할 수 있습니다. 데이터베이스 연동, 사용자 인증, RESTful API 구축 등 다양한 기능을 추가할 수 있습니다.
RESTful API 예제
from flask import Flask, jsonify
app = Flask(__name__)
tasks = [
{'id': 1, 'title': 'Do homework', 'done': False},
{'id': 2, 'title': 'Read book', 'done': False}
]
@app.route('/api/tasks', methods=['GET'])
def get_tasks():
return jsonify({'tasks': tasks})
if __name__ == '__main__':
app.run(debug=True)
이 예제는 간단한 RESTful API를 생성하여 tasks 리스트를 JSON 형식으로 제공합니다. /api/tasks 경로로 GET 요청을 보내면 등록된 작업 목록을 볼 수 있습니다.
결론
Python과 Flask를 활용하면 간단한 웹 서버 구축부터 복잡한 웹 애플리케이션 개발까지 폭넓게 대응할 수 있습니다. 시작은 간단하더라도, Flask의 확장성과 Python의 다양한 라이브러리를 통해 필요한 모든 기능을 추가할 수 있습니다. 이러한 도구들을 이용하여 효과적인 웹 솔루션을 개발해 보세요.
'Python' 카테고리의 다른 글
Python을 이용한 시계열 데이터 분석 기초 (2) | 2024.06.13 |
---|---|
Python을 이용한 분산 컴퓨팅 활용 기초 (2) | 2024.06.12 |
Python을 이용한 자연어 생성(Natural Language Generation, NLG) 기초 (1) | 2024.06.11 |
Python을 활용한 딥러닝 프레임워크 이해 및 활용 방법 (2) | 2024.06.11 |
Python과 TensorFlow를 이용한 기계 학습 기초 (2) | 2024.06.10 |