[python] Flask-WTF에서 입력 폼의 템플릿을 커스터마이징하는 방법은 어떻게 되나요?

Flask-WTF는 Flask 웹 프레임워크에서 폼을 생성하고 유효성 검사를 수행하는 데 사용하는 패키지입니다. Flask-WTF를 사용하여 입력 폼을 커스터마이징하는 방법을 알아보겠습니다.

  1. 템플릿 파일 생성하기: 먼저, 커스터마이징하고자 하는 입력 폼의 템플릿 파일을 생성해야 합니다. Flask-WTF에서는 Jinja2 템플릿 엔진을 사용합니다. 따라서, Jinja2 문법을 사용하여 템플릿 파일을 작성해야 합니다.

       
    <!-- custom_form.html -->
    <form method="POST" action="">
        {{ form.csrf_token }}
        {{ form.my_field.label }}
        {{ form.my_field() }}
        {{ form.submit() }}
    </form>
       
    
  2. Flask 애플리케이션에 적용하기: 커스터마이즈한 템플릿을 Flask 애플리케이션에 적용해야 합니다. Flask-WTF를 사용하여 폼을 생성하고, 해당 폼을 커스터마이즈한 템플릿과 연결해야 합니다.

    # app.py
    from flask import Flask, render_template
    from flask_wtf import FlaskForm
    from wtforms import StringField, SubmitField
    
    app = Flask(__name__)
    app.config['SECRET_KEY'] = 'your_secret_key'
    
    class MyForm(FlaskForm):
        my_field = StringField('My Field')
        submit = SubmitField('Submit')
    
    @app.route('/', methods=['GET', 'POST'])
    def index():
        form = MyForm()
        if form.validate_on_submit():
            # 폼이 제출되었을 때의 로직 처리
            pass
        return render_template('custom_form.html', form=form)
    
    if __name__ == '__main__':
        app.run(debug=True)
    

    위의 예시 코드에서는 MyForm 클래스를 정의하여 커스텀 폼을 생성하였고, index 라우트 함수에서 해당 폼을 템플릿과 함께 렌더링하도록 설정하였습니다.

  3. 커스터마이징한 템플릿 사용하기: Flask 애플리케이션을 실행하고 브라우저에서 해당 URL에 접속하면, 커스터마이징한 입력 폼이 표시됩니다. 이제 custom_form.html 파일을 수정하여 원하는 대로 입력 폼을 디자인하면 됩니다.

    Flask-WTF는 다양한 폼 필드 유형과 유효성 검사 기능을 제공하므로, 필요에 따라 추가적인 커스터마이징이 가능합니다. 자세한 내용은 Flask-WTF 문서를 참고하세요.

위의 방법을 따라 Flask-WTF를 사용하여 입력 폼 템플릿을 커스터마이징할 수 있습니다. Flask-WTF의 강력한 기능을 활용하여 사용자 친화적인 웹 어플리케이션을 개발해보세요.