[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 기반의 웹 애플리케이션에서 암호화된 비밀번호를 저장하는 방법을 보여주고 있습니다. 개발환경에 맞게 코드를 수정하고, 실제 데이터베이스에 연결하여 사용하면 됩니다.
참고 자료:
- Flask-WTF: https://flask-wtf.readthedocs.io/
- bcrypt 모듈: https://pypi.org/project/bcrypt/