[python] Flask-WTF에서 사용자가 입력한 값을 초기화하고 기본값으로 설정하는 방법은 어떻게 되나요?

일단 Flask-WTF를 설치하고 필요한 패키지를 가져와야 합니다:

pip install Flask-WTF

간단한 예시로 폼을 만들어보겠습니다.

from flask import Flask, render_template
from flask_wtf import FlaskForm
from wtforms import StringField, SubmitField
from wtforms.validators import DataRequired

app = Flask(__name__)
app.config['SECRET_KEY'] = 'your-secret-key'

class MyForm(FlaskForm):
    name = StringField('Name', validators=[DataRequired()])
    age = StringField('Age')

    submit = SubmitField('Submit')

@app.route('/', methods=['GET', 'POST'])
def index():
    form = MyForm()
    if form.validate_on_submit():
        # 폼이 제출되면 입력한 값을 초기화하고 기본값으로 설정합니다.
        form.name.data = ''
        form.age.data = '18'
    return render_template('index.html', form=form)

if __name__ == '__main__':
    app.run()

위의 코드에서 index 뷰 함수에서 폼이 제출되면 form.name.dataform.age.data의 값을 초기화하고 기본값으로 설정합니다. 이후, render_template 함수를 통해 템플릿과 함께 폼을 렌더링합니다.

템플릿 파일인 index.html을 아래와 같이 작성합니다:


<!DOCTYPE html>
<html>
<head>
    <title>Flask-WTF Form</title>
</head>
<body>
    <h1>Flask-WTF Form</h1>
    <form method="POST">
        {{ form.hidden_tag() }}
        {{ form.name.label }} {{ form.name }}
        {{ form.age.label }} {{ form.age }}
        {{ form.submit }}
    </form>
</body>
</html>

위의 코드에서 {{ form.name }}{{ form.age }}는 입력 필드를 표시하는 부분입니다.

이제 애플리케이션을 실행하고 http://localhost:5000에 접속하여 폼을 작성해보세요. 제출 후 입력한 값이 초기화되고 name 필드는 비어있고 age 필드는 18로 설정되는 것을 볼 수 있습니다.

더 자세한 내용은 Flask-WTF 공식 문서를 참고하세요.