首页 > 解决方案 > 使用 Python Flask 和 SQLAlchemy 将不同的表单数据条目传递到数据库中的同一行

问题描述

我创建了一个包含用户名和电子邮件地址的表单。我从表单中获取这些数据,并通过以下方式将其放入 sqlite3 数据库:

 @app.route('/my_form', methods=["GET", "POST"])

def form_data():
    if request.method == "POST":
        user_name = request.form["name"]
        new_user = form_database(name=user_name)
        user_email = request.form["email"]
        new_user_email = form_database(email=user_email)
     try:
            db.session.add(new_user)
            db.session.add(new_user_email)
            db.session.commit()
            return redirect("/my_form")

当前结果:每个数据条目都记录到一个新行中:

1|Jack||||||||||
2||svisto@hotmail.com|||||||||

理想的结果:每个数据条目都记录在同一行中:

1|Jack|svisto@hotmail.com|||||||||

问题:如何更改代码以获得理想的结果?

标签: pythonsqliteflask-sqlalchemyflask-wtforms

解决方案


我发现的解决方案:

我融合了:

new_user = form_database(name=user_name) and new_user_email = form_database(email=user_email)

一起使代码如下所示:

@app.route('/my_form', methods=["GET", "POST"])

def form_data():
    if request.method == "POST":
        user_name = request.form["name"]
        user_email = request.form["email"]
        new_user_details = form_database(name=user_name, email=user_email)#assigns 2 form inputs for both columns in the database model to the same variable
     try:
            db.session.add(new_user_details)#adds that variable to the database as one entry, hence in one row but different columns
            db.session.commit()

推荐阅读