AttributeError:“ scoped_session”对象没有属性“ session”

时间:2019-12-01 23:49:24

标签: python flask orm sqlalchemy

我正在尝试向数据库中插入新数据,但是我的Web应用程序返回此错误。 我的代码如下:

models.py

F|F|F & F|F|F & F|T|F
F|F|F & F|F|F & T|F|F

application.py

import os

from flask import Flask
from flask_sqlalchemy import SQLAlchemy

db = SQLAlchemy()

...

class Patient(db.Model):
    __tablename__ = "patients"
    id = db.Column(db.Integer, primary_key=True)
    lname = db.Column(db.String, nullable=False)
    fname = db.Column(db.String, nullable=False)
    mname = db.Column(db.String, nullable=True)
    address = db.Column(db.String, nullable=False)
    birthdate = db.Column(db.Date, nullable=False)
    date_modified = db.Column(db.DateTime, nullable=False)
    modified_by = db.Column(db.Integer, db.ForeignKey("users.id"), nullable=False)
    date_created = db.Column(db.DateTime, nullable=False)
    created_by = db.Column(db.Integer, db.ForeignKey("users.id"), nullable=False)

    def __init__(self, fname, mname, lname):
        self.fname = fname
        self.mname = mname
        self.lname = lname

我是python的新手,已经尝试了几个小时在代码中查找错误,但似乎找不到任何可以帮助我的东西。

2 个答案:

答案 0 :(得分:0)

我猜想您在使用它后会错过创建构造函数“ Session”的问题,
该代码将是:

# create a configured "Session" class
Session = scoped_session(sessionmaker(bind=engine))
@app.route("/submitpatient",  methods=["POST"])
def submitpatient():
    fname = request.form.get("fname")
    mname = request.form.get("mname")
    lname = request.form.get("lname")

    patient = Patient(fname=fname, mname=mname, lname=lname)
    #create a Session
    session = Session()

    session.add(patient)
    session.commit()

    return redirect(url_for('index'))

有关更多信息,请参见this

答案 1 :(得分:0)

如果您只是addcommit,如下所示,

db.add(patient)
db.commit()