[python] Flask-WTF에서 폼 데이터를 데이터베이스에 저장하는 방법은 무엇인가요?
  1. 필요한 모듈과 패키지를 import 합니다. Flask-WTF, SQLAlchemy, 폼 클래스 등을 사용하려면 다음과 같이 import 합니다:
from flask import Flask, render_template, request
from flask_sqlalchemy import SQLAlchemy
from flask_wtf import FlaskForm
from wtforms import StringField, SubmitField
  1. Flask 애플리케이션을 설정하고 데이터베이스 연결을 설정합니다:
app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///database.db'  # 데이터베이스 경로와 이름 설정
app.config['SECRET_KEY'] = 'your-secret-key'  # 보안을 위한 시크릿 키 설정
db = SQLAlchemy(app)
  1. 데이터베이스에 저장할 모델을 정의합니다. 예를 들어, 사용자 정보를 저장하기 위해 User 모델을 다음과 같이 정의할 수 있습니다:
class User(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.String(50))
    email = db.Column(db.String(100))
  1. 폼 클래스를 생성합니다. 폼의 필드는 데이터베이스 모델과 일치해야 합니다. 예를 들어, 다음과 같이 사용자 정보를 입력받는 폼 클래스를 생성할 수 있습니다:
class UserForm(FlaskForm):
    name = StringField('이름')
    email = StringField('이메일')
    submit = SubmitField('저장')
  1. 라우트 함수를 생성하고 폼 데이터를 처리합니다. POST 메서드로 폼이 제출된 경우 폼 데이터를 받아와 데이터베이스에 저장할 수 있습니다. 다음은 예시입니다:
@app.route('/', methods=['GET', 'POST'])
def index():
    form = UserForm()
    if form.validate_on_submit():
        user = User(name=form.name.data, email=form.email.data)
        db.session.add(user)
        db.session.commit()
    return render_template('index.html', form=form)

이제 폼 데이터를 입력하고 제출하면 해당 데이터가 데이터베이스에 저장됩니다.

플라스크(Flask)와 Flask-WTF, SQLAlchemy에 대한 자세한 내용은 아래 문서를 참조해주세요: