[python] Flask-WTF에서 폼 필드에 입력된 값을 암호화하여 저장하는 방법은 어떻게 되나요?

먼저, Flask-WTF 모듈을 설치해야 합니다. 다음 명령어를 사용하여 설치할 수 있습니다:

pip install Flask-WTF

암호화에는 보통 bcrypt 모듈을 많이 사용합니다. bcrypt 모듈은 비밀번호 해시 함수를 제공합니다. 다음 명령어를 사용하여 bcrypt 모듈을 설치하세요:

pip install bcrypt

이제 암호화 기능을 사용하여 비밀번호를 저장하는 코드를 작성해보겠습니다. 아래 코드를 참고하세요:

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

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

class MyForm(FlaskForm):
    username = StringField('Username', validators=[DataRequired()])
    password = PasswordField('Password', validators=[DataRequired()])
    submit = SubmitField('Submit')

@app.route('/', methods=['GET', 'POST'])
def index():
    form = MyForm()
    if form.validate_on_submit():
        # 입력된 비밀번호를 암호화하여 저장합니다.
        hashed_password = bcrypt.hashpw(form.password.data.encode('utf-8'), bcrypt.gensalt())

        # 암호화된 비밀번호를 데이터베이스에 저장하거나 다른 처리를 수행합니다.
        # ...

        return 'Password has been encrypted and stored.'
    return render_template('index.html', form=form)

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

위 코드에서 bcrypt.hashpw() 함수를 사용하여 입력된 비밀번호를 암호화하고, hashed_password 변수에 저장합니다. 이후 hashed_password 값을 데이터베이스에 저장하거나 다른 처리를 수행할 수 있습니다.

위의 예시는 Flask 기반의 웹 애플리케이션에서 암호화된 비밀번호를 저장하는 방법을 보여주고 있습니다. 개발환경에 맞게 코드를 수정하고, 실제 데이터베이스에 연결하여 사용하면 됩니다.

참고 자료: