[파이썬] web2py의 FORM 객체

web2py는 파이썬으로 작성된 웹 애플리케이션 프레임워크입니다. 이 프레임워크는 웹 애플리케이션 개발을 간편하게 만들어주는 다양한 기능을 제공하는데, 그 중 하나가 FORM 객체입니다. FORM 객체를 사용하면 사용자로부터 입력 받을 수 있는 폼을 쉽게 생성할 수 있습니다.

FORM 객체의 기본 사용법

form = FORM('Hello, World!')

위의 코드는 “Hello, World!”라는 텍스트를 가지는 간단한 폼을 생성하는 예시입니다. FORM은 web2py의 FORM 객체를 생성하는 클래스입니다. 생성자에는 폼에 표시될 내용을 인자로 전달합니다.

폼 객체를 생성한 후, 이를 렌더링하여 HTML로 출력할 수 있습니다.

form = FORM('Hello, World!')
html = form.xml()

위의 코드에서 xml() 메소드를 호출하여 폼 객체를 HTML로 렌더링한 결과를 html 변수에 저장합니다.

폼 요소 추가하기

폼에는 다양한 입력 요소를 추가할 수 있습니다. 예를 들어, 텍스트 입력 필드, 체크박스, 라디오 버튼 등을 추가할 수 있습니다.

form = FORM(
    LABEL('Name'),
    INPUT(_name='name', _type='text'),
    LABEL('Gender'),
    INPUT(_name='gender', _type='radio', _value='Male'),
    'Male',
    INPUT(_name='gender', _type='radio', _value='Female'),
    'Female',
    INPUT(_type='submit', _value='Submit')
)

위의 코드는 이름과 성별을 입력받는 간단한 폼을 생성하는 예시입니다. LABELINPUT 요소를 사용하여 폼에 필요한 요소들을 추가합니다. _name_type 등의 속성을 사용하여 요소의 속성을 설정할 수 있습니다.

데이터 전송 및 유효성 검사

폼을 제출하면 입력된 데이터를 서버로 전송할 수 있습니다. web2py는 자동으로 입력 데이터를 수신하고 처리할 수 있습니다.

form = FORM(
    LABEL('Name'),
    INPUT(_name='name', _type='text', requires=IS_NOT_EMPTY()),
    INPUT(_type='submit', _value='Submit')
)

if form.process().accepted:
    name = form.vars.name
    # 데이터 처리 로직

위의 코드는 입력 필드에 IS_NOT_EMPTY() 유효성 검사를 설정한 예시입니다. process() 메소드를 호출하여 폼을 제출하면 유효성 검사를 수행하고 accepted 속성이 True인지 확인하여 제출 완료를 확인합니다. 제출된 데이터는 form.vars 객체를 통해 접근할 수 있습니다.

결론

web2py의 FORM 객체는 웹 애플리케이션에서 사용자 입력을 처리하는 데 유용한 기능을 제공합니다. FORM 객체를 사용하면 웹 애플리케이션의 폼을 쉽고 간편하게 만들 수 있습니다. 유효성 검사 등의 기능을 활용하여 안전하게 데이터를 수신하고 처리할 수 있습니다. 이러한 기능들을 통해 웹 애플리케이션의 사용자 경험을 향상시킬 수 있습니다.