[python] Flask-WTF에서 다국어 지원을 위해 언어 선택 옵션을 제공하는 방법은 어떻게 되나요?
Flask-WTF는 Flask를 기반으로 한 웹 애플리케이션 개발에 유용한 Python 라이브러리입니다. Flask-WTF를 사용하면 웹 폼을 쉽게 생성하고 검증할 수 있습니다.
Flask-WTF에서 다국어 지원을 위해 언어 선택 옵션을 제공하려면 다음 단계를 따르면 됩니다.
-
먼저 Flask-WTF의 언어 지원을 활성화해야 합니다. Flask-WTF는 내부적으로 WTForms를 사용하므로, 다국어 지원을 위해서는 WTForms의 언어 지원 기능을 활성화해야 합니다.
from flask_babel import Babel babel = Babel(app)
-
다음으로, Flask-WTF 양식에서 언어 선택 옵션을 제공하려면 선택할 수 있는 언어 목록을 만들어야 합니다.
LANGUAGES = { 'en': 'English', 'es': 'Español', 'ko': '한국어' }
-
이제 Flask-WTF를 사용하여 폼을 생성할 때, 필요한 필드에 언어 선택 옵션 필드를 추가하면 됩니다.
from flask_wtf import FlaskForm from wtforms import SelectField class MyForm(FlaskForm): language = SelectField('Language', choices=list(LANGUAGES.items())) # 다른 필드들을 추가 # 폼 검증 로직 등을 추가
이렇게 언어 선택 옵션 필드를 추가하면, 사용자는 폼을 제출하기 전에 선호하는 언어를 선택할 수 있습니다.
-
폼을 HTML 템플릿으로 렌더링할 때, 언어 선택 필드를 올바르게 표시할 수 있도록 다음과 같이 템플릿에서 처리할 수 있습니다.
<!-- form.html --> <form method="post" action=""> {{ form.csrf_token }} {{ form.language.label }} {{ form.language }} <br> <!-- 다른 필드들을 추가 --> <input type="submit" value="Submit"> </form>
위 예시에서
form.language.label
은 언어 선택 필드의 레이블을 표시하고,form.language
은 실제 필드를 표시합니다.
이제 Flask-WTF를 사용하여 언어 선택 옵션을 제공하는 폼을 만들 수 있을 것입니다. Flask-WTF와 WTForms를 조합하여 간단하고 효과적인 웹 폼을 구현할 수 있습니다.
참고 자료:
- Flask-WTF 문서: http://flask-wtf.readthedocs.io/
- WTForms 문서: https://wtforms.readthedocs.io/
- Flask-Babel 문서: https://pythonhosted.org/Flask-Babel/