SQLalchemy AttributeError: 'str' object has no attribute '_sa_instance_state'

前端 未结 3 1030
野性不改
野性不改 2020-12-10 10:54

I\'m trying to add an item to my database with SQLAlchemy + Python, but keep getting an error.

My database_setup.py:

class company(Base):
    __table         


        
3条回答
  •  粉色の甜心
    2020-12-10 11:33

    from flask import Flask
    from flask import request,redirect,render_template
    from flask_sqlalchemy import SQLAlchemy
    
    app=Flask(__name__)
    app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///students1.sqlite3'
    db=SQLAlchemy(app)
    
    class Categ(db.Model):
        id=db.Column(db.Integer,primary_key=True)
        name=db.Column(db.String(100))
        product=db.relationship('Product',backref='owner',lazy=True)
    
    class Product(db.Model):
        id=db.Column(db.Integer,primary_key=True)
        pname=db.Column(db.String(100))
        price=db.Column(db.Integer)
        categ_id=db.Column(db.Integer,db.ForeignKey('categ.id'))
    
    @app.route('/')
    def home():
        return 'home'
    
    @app.route('/post',methods=['POST','GET'])
    def Productform():
        ob=Categ.query.all()
        if request.method=='POST':
            owner=request.form['ca']
            user = Categ.query.filter_by(name=owner).first()
    
            user=Product(pname=request.form['pname'],price=request.form['price'],owner=user)
            db.session.add(user)
            db.session.commit()
    
            return 'submit'
    
        return render_template('product.html',ob=ob)
    
    
    
    @app.route('/categ',methods=['POST','GET'])
    def Categoryform():
        if request.method=='POST':
            user=Categ(name=request.form['cname'])
            db.session.add(user)
            db.session.commit()
    
            return 'submit'
    
        return render_template('categ.html')
    
    
    if __name__ == '__main__':
       app.run(debug=True)
       db.create_all()
    

提交回复
热议问题