Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- from sqlalchemy import create_engine, MetaData, Table, Column, ForeignKey
- from sqlalchemy.dialects.mysql.base import VARCHAR, LONGTEXT, INTEGER
- from sqlalchemy.orm import sessionmaker
- from sqlalchemy.ext.declarative import declarative_base
- engine = create_engine("mysql+mysqldb://root:@localhost/mydb")
- connection = engine.connect()
- Session = sessionmaker(bind=engine)
- session = Session()
- Base = declarative_base()
- metadata = MetaData()
- class User(Base):
- __tablename__ = 'User'
- __abstract__ = True
- id = Column('id', INTEGER(display_width=11), primary_key=True, nullable=False)
- email = Column('email', VARCHAR(charset='utf8mb4', collation='utf8mb4_0900_ai_ci', length=100), unique=True)
- password = Column('password', VARCHAR(charset='utf8mb4', collation='utf8mb4_0900_ai_ci', length=45))
- name = Column('name', VARCHAR(charset='utf8mb4', collation='utf8mb4_0900_ai_ci', length=100))
- Base.metadata.create_all(engine)
- add_user = User(email = "testing@testing.com",
- password = 'testing',
- name = 'testing')
- session.add(add_user)
- session.commit()
- AttributeError: 'User' object has no attribute '_sa_instance_state'
- During handling of the above exception, another exception occurred:
- raise exc.UnmappedInstanceError(instance)
- sqlalchemy.orm.exc.UnmappedInstanceError: Class '__main__.User' is not mapped
- class User(Base):
- __tablename__ = 'User'
- __abstract__ = True
- id = Column('id', INTEGER(display_width=11), primary_key=True, nullable=False)
- email = Column('email', VARCHAR(charset='utf8mb4', collation='utf8mb4_0900_ai_ci', length=100), unique=True)
- password = Column('password', VARCHAR(charset='utf8mb4', collation='utf8mb4_0900_ai_ci', length=45))
- name = Column('name', VARCHAR(charset='utf8mb4', collation='utf8mb4_0900_ai_ci', length=100))
- class AUser(User):
- pass
- if __name__ == '__main__':
- Base.metadata.drop_all(bind=engine)
- Base.metadata.create_all(bind=engine)
- add_user = AUser(email = "testing@testing.com",
- password = 'testing',
- name = 'testing')
- session.add(add_user)
- session.commit()
Add Comment
Please, Sign In to add comment