[python] Flask-WTF에서 사용자가 입력한 값을 초기화하고 기본값으로 설정하는 방법은 어떻게 되나요?
- Flask-WTF의
Form
클래스를 상속하여 사용자 정의 폼을 생성합니다.
from flask_wtf import FlaskForm
from wtforms import StringField, SubmitField
class MyForm(FlaskForm):
name = StringField('Name')
email = StringField('Email')
submit = SubmitField('Submit')
- 뷰 함수에서 폼 인스턴스를 생성하고 기본값을 설정합니다.
from flask import Flask, render_template, request
from flask_wtf import CSRFProtect
app = Flask(__name__)
app.config['SECRET_KEY'] = 'your-secret-key' # 비밀 키 설정
csrf = CSRFProtect(app)
@app.route('/form', methods=['GET', 'POST'])
def form():
form = MyForm(request.form) # 폼 인스턴스 생성
if request.method == 'POST':
# 사용자가 전송한 값으로 폼을 채웁니다.
form.name.data = request.form['name']
form.email.data = request.form['email']
# 기본값을 설정합니다.
form.name.default = 'John Doe'
form.email.default = 'johndoe@example.com'
return render_template('form.html', form=form)
- HTML 템플릿에서 폼 필드를 다음과 같이 렌더링합니다.
<form method="POST" action="{{url_for('form')}}">
{{ form.hidden_tag() }}
{{ form.name.label }} {{ form.name }}
{{ form.email.label }} {{ form.email }}
{{ form.submit }}
</form>
위 코드에서 form.name.default
와 form.email.default
를 사용하여 해당 필드의 기본값을 설정할 수 있습니다. 따라서 사용자가 입력한 값이 없을 경우, 폼을 렌더링할 때 기본값이 자동으로 설정됩니다.
더 자세한 내용은 Flask와 Flask-WTF 공식 문서를 참고하시기 바랍니다.