[파이썬] web2py에서의 CRUD 작업

web2py는 파이썬으로 개발된 웹 어플리케이션 프레임워크로, 간단한 CRUD 작업을 쉽게 처리할 수 있습니다. CRUD는 Create, Read, Update, Delete의 약자로, 데이터를 만들고 조회하며 수정하고 삭제하는 일반적인 데이터 작업을 의미합니다. 이 글에서는 web2py에서 CRUD 작업을 어떻게 수행하는지 살펴보겠습니다.

1. 모델 정의하기

먼저, CRUD 작업을 수행할 데이터의 모델을 정의해야 합니다. 모델은 데이터베이스의 스키마를 정의하고 데이터를 조작하는 데 사용됩니다. web2py는 모델을 정의하기 위해 간단한 스키마 정의 언어인 DAL (Database Abstraction Layer)을 제공합니다.

db.define_table('product',
    Field('name', 'string', requires=IS_NOT_EMPTY()),
    Field('price', 'decimal(10,2)', requires=IS_FLOAT_IN_RANGE(0.0, 9999.99)),
    Field('description', 'text'),
)

위의 예제는 “product”라는 테이블을 정의하는 모델입니다. 이 테이블은 이름(name), 가격(price), 설명(description) 세 가지 필드를 포함합니다.

2. 데이터 생성하기

다음으로, 데이터를 생성해보겠습니다. 데이터를 생성하기 위해서는 db.insert() 메소드를 사용합니다.

product_id = db.product.insert(name='iPhone 12', price=999.99, description='The latest smartphone from Apple')

위의 예제는 “product” 테이블에 ‘iPhone 12’라는 제품을 추가하는 코드입니다. insert() 메소드는 데이터베이스에 데이터를 추가하고, 추가된 데이터의 고유 식별자인 product_id를 반환합니다.

3. 데이터 조회하기

다음은 데이터를 조회하는 방법입니다. db().select() 메소드를 사용하여 테이블의 데이터를 선택할 수 있습니다.

products = db().select(db.product.ALL)
for product in products:
    print(product.name, product.price)

위의 예제는 “product” 테이블의 모든 데이터를 조회하고, 각 데이터의 이름과 가격을 출력하는 코드입니다.

4. 데이터 수정하기

데이터를 수정하기 위해서는 조건에 해당하는 데이터를 선택하고, db().update() 메소드를 사용하여 수정할 필드를 지정합니다.

db(db.product.id == product_id).update(price=899.99)

위의 예제는 “product” 테이블에서 product_id 값에 해당하는 데이터의 가격을 수정하는 코드입니다.

5. 데이터 삭제하기

데이터를 삭제하기 위해서는 조건에 해당하는 데이터를 선택하고, db().delete() 메소드를 사용합니다.

db(db.product.id == product_id).delete()

위의 예제는 “product” 테이블에서 product_id 값에 해당하는 데이터를 삭제하는 코드입니다.


web2py에서 CRUD 작업은 위와 같이 간단하게 처리할 수 있습니다. 이를 통해 데이터의 생성, 조회, 수정, 삭제를 손쉽게 수행할 수 있으며, 웹 애플리케이션 개발 시 큰 도움이 될 것입니다. web2py의 강력한 기능과 더불어, CRUD 작업을 통해 데이터를 효율적으로 관리할 수 있다는 점을 명심하시기 바랍니다.