[파이썬] web2py의 모델 정의

웹2피는 파이썬으로 작성된 웹 애플리케이션 개발 프레임워크입니다. 이 프레임워크를 사용하면 간단하고 효율적으로 데이터베이스를 사용하고 관리할 수 있습니다. 이번 포스트에서는 웹2피에서 모델을 정의하는 방법에 대해 알아보겠습니다.

웹2피에서 모델은 데이터베이스 테이블을 정의하는 클래스입니다. 이 클래스는 데이터베이스 테이블의 구조와 동작을 정의하며, 웹2피에서 제공하는 ORM(Object Relational Mapping) 기능을 통해 데이터베이스와 상호작용할 수 있습니다.

아래는 웹2피에서 모델을 정의하는 예시 코드입니다.

from datetime import datetime
from pydal import DAL, Field

# 데이터베이스 연결 설정
db = DAL("sqlite://storage.db")

# 모델 정의
db.define_table(
    'post',
    Field('title', 'string', notnull=True),
    Field('content', 'text'),
    Field('created_on', 'datetime', default=datetime.utcnow()),
)

# 모델 사용 예시
def create_post(title, content):
    db.post.insert(title=title, content=content)

def get_all_posts():
    return db(db.post).select()

def get_post_by_id(post_id):
    return db(db.post.id == post_id).select().first()

위의 예시 코드에서는 post라는 이름의 테이블을 정의했습니다. 이 테이블은 title, content, created_on 필드를 가지고 있습니다. title 필드는 문자열 타입이며, notnull=True 옵션을 통해 필수 필드로 설정되었습니다. content 필드는 텍스트 타입이며, created_on 필드는 기본값으로 현재 날짜와 시간을 가지도록 설정되었습니다.

db.define_table() 함수를 사용하여 모델을 정의했으며, db.post와 같은 방식으로 모델을 사용할 수 있습니다. 예를 들어, create_post() 함수를 통해 새로운 게시물을 생성하거나, get_all_posts() 함수를 통해 모든 게시물을 조회할 수 있습니다.

웹2피의 모델 정의 방법에 대한 간단한 예시를 살펴보았습니다. 이 예시 코드를 참고하여 웹2피를 사용하여 데이터베이스 모델을 정의하고 활용하는 방법을 익히시기 바랍니다.