[python] Flask-WTF에서 사용자에게 선택적인 필드를 보여주거나 숨기는 방법은 어떻게 되나요?
Flask-WTF를 사용하면 사용자에게 개별 필드를 선택적으로 보여줄 수 있습니다. 이 기능을 사용하면 사용자에게 필요한 정보만 입력하도록 할 수 있습니다. 이를 통해 입력 양식을 단순화하고, 사용자 경험을 개선할 수 있습니다.
Flask-WTF에서 사용자에게 선택적인 필드를 보여주거나 숨기는 방법은 conditional
데코레이터와 HiddenField
클래스를 사용하는 것입니다.
우선, 필드를 숨기고자 하는 경우 HiddenField
를 사용합니다. 아래는 사용자가 숨길 필드를 선택할 수 있는 예제 코드입니다.
from flask_wtf import FlaskForm
from wtforms import StringField, HiddenField, SubmitField
from wtforms.validators import DataRequired
class MyForm(FlaskForm):
username = StringField('Username', validators=[DataRequired()])
password = StringField('Password', validators=[DataRequired()])
remember_me = HiddenField('Remember Me')
submit = SubmitField('Submit')
위의 코드에서 remember_me
필드는 사용자에게는 보여지지 않지만, 서버측에서는 값을 받을 수 있습니다.
반면, 사용자에게 보여줄 필드를 선택하려면 conditional
데코레이터를 사용해야 합니다. 아래는 conditional
데코레이터를 사용하여 필드를 동적으로 컨트롤하는 예제 코드입니다.
from flask_wtf import FlaskForm
from wtforms import StringField, BooleanField, SubmitField
from wtforms.validators import DataRequired
from wtforms.validators import Optional
class MyForm(FlaskForm):
username = StringField('Username', validators=[DataRequired()])
@conditional('username', depends_on='remember_me')
def password(self):
return StringField('Password', validators=[DataRequired()])
remember_me = BooleanField('Remember Me')
submit = SubmitField('Submit')
위의 코드에서 password
필드는 remember_me
를 선택할 때에만 보여집니다. conditional
데코레이터는 첫 번째 인자로 조건에 해당하는 필드를 지정하고, depends_on
인자로 종속되는 필드를 지정합니다.
이러한 방법을 통해 Flask-WTF를 사용하여 사용자에게 선택적인 필드를 보여주거나 숨길 수 있습니다.
Flask-WTF 문서를 참조하여 좀 더 자세한 정보를 확인할 수 있습니다. Flask-WTF 문서