""" module docstring """ from sqlalchemy import Column, Integer, String, create_engine, ForeignKey, DateTime, Boolean,Float from sqlalchemy.ext.declarative import declarative_base from sqlalchemy.orm import sessionmaker, aliased, Query, relationship from sqlalchemy.sql import func from sqlalchemy.orm import registry mapper_registry = registry() engine = create_engine('sqlite:///dipl.db', echo=True) Base = mapper_registry.generate_base() Session = sessionmaker(bind=engine) class Mottherboard(Base): __tablename__ = "Motherboard" id = Column(Integer, primary_key=True) nazvanie = Column(String) versia = Column(String) officialSite = Column(String) kolvoDraivers = Column(String) printers = relationship('Printer', backref='Motherboard') drv = relationship('MotorDruvers') class MotorDruvers(Base): __tablename__ ="MotorDruvers" id = Column(Integer, primary_key=True) nazvanie = Column(String) versia = Column(String) workTok = Column(Float) mboardID = Column(Integer, ForeignKey(Mottherboard.id)) class Printer(Base): __tablename__ = "Printer" id = Column(Integer, primary_key=True) kinematics = Column(String) nazvanie = Column(String) proshivka = Column(String) maxSpedPrint = Column(Integer) minSpedPrint = Column(Integer) print_settings = relationship("PrintSettings", backref="Printer") mboard_id = Column(Integer, ForeignKey(Mottherboard.id)) class Plastic(Base): __tablename__ = "Plastic" id = Column(Integer, primary_key=True) nazvanie = Column(String) diametr = Column(Integer) color = Column(String) typePlast = Column(String) proizv = Column(String) minTempPrint = Column(Integer) maxTempPrint = Column(Integer) dateproizv = Column(DateTime) print_settings = relationship("PrintSettings", backref="Plastic") class PrintSettings(Base): __tablename__ = "PrintSettings" id = Column(Integer, primary_key=True) tempStol = Column(Integer) tempSopl = Column(Integer) PrintSpeed = Column(Integer) procentZapoln = Column(Integer) good_set = Column(Boolean, unique=False, default=False) time_add = Column(DateTime) primechanie = Column(String) id_printer = Column(Integer, ForeignKey(Printer.id)) id_plastic = Column(Integer, ForeignKey(Plastic.id)) class Dolgnost(Base): __tablename__ = "Dolgnost" id = Column(Integer, primary_key=True) dolgnst = Column(String) isadmin = Column(Boolean, default=False) users = relationship("Users") class Users(Base): __tablename__ = "Users" id = Column(Integer, primary_key=True) fio = Column(String) login = Column(String) passwd = Column(String) id_dolgnost = Column(Integer, ForeignKey(Dolgnost.id)) def create_db(): Base.metadata.create_all(engine) sess = Session() newdolg=Dolgnost(dolgnst='admin', isadmin=True) sess.add(newdolg) sess.commit() dlg = sess.query(Dolgnost).filter(Dolgnost.dolgnst=='admin').first() newuser = Users(fio="admin", id_dolgnost=dlg.id, login="admin", passwd="123456") sess.add(newuser) sess.commit() sess.close() if __name__ == '__main__': create_db()