[python] Peewee와 RESTful API 개발
Peewee는 Python에서 사용할 수 있는 가볍고 직관적인 ORM(Object Relational Mapping) 라이브러리입니다. RESTful API를 개발할 때 Peewee를 사용하면 데이터베이스와의 상호작용을 쉽게 처리할 수 있습니다.
RESTful API란?
RESTful API는 Representational State Transfer의 약자로, 웹 애플리케이션과 다른 애플리케이션 간의 통신을 위한 아키텍처 스타일입니다. RESTful API는 HTTP 프로토콜을 사용하여 자원을 생성, 읽기, 수정, 삭제하는 작업을 수행합니다.
Peewee를 사용한 RESTful API 개발
Peewee를 사용하여 RESTful API를 개발하는 예제를 살펴보겠습니다.
from flask import Flask, Response, request
from peewee import *
app = Flask(__name__)
db = SqliteDatabase('mydatabase.db')
class User(Model):
name = CharField()
age = IntegerField()
class Meta:
database = db
@app.route('/users', methods=['GET'])
def get_users():
users = User.select()
response = []
for user in users:
response.append({
'name': user.name,
'age': user.age
})
return Response(json.dumps(response), mimetype='application/json')
@app.route('/users', methods=['POST'])
def create_user():
user_data = request.json
user = User(name=user_data['name'], age=user_data['age'])
user.save()
return 'User created successfully'
@app.route('/users/<int:user_id>', methods=['GET'])
def get_user(user_id):
try:
user = User.get(User.id == user_id)
response = {
'name': user.name,
'age': user.age
}
return Response(json.dumps(response), mimetype='application/json')
except DoesNotExist:
return Response('User not found', status=404)
if __name__ == '__main__':
app.run()
위 예제에서는 Peewee ORM을 사용하여 간단한 유저 데이터를 다루는 RESTful API를 개발하였습니다.
- GET /users: 모든 유저 정보를 가져오는 엔드포인트입니다.
- POST /users: 새로운 유저를 생성하는 엔드포인트입니다.
- GET /users/:user_id: 특정 유저의 정보를 가져오는 엔드포인트입니다.
Peewee를 사용하면 데이터베이스와의 상호작용이 간단하고 직관적으로 이루어집니다. ORM을 사용하므로 SQL 쿼리를 직접 작성하지 않아도 됩니다.