108 lines
2.9 KiB
Python
108 lines
2.9 KiB
Python
from sqlalchemy import Column, Integer, String, create_engine, ForeignKey, DateTime, Boolean
|
|
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
|
|
from sqlalchemy import create_engine
|
|
|
|
|
|
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')
|
|
|
|
|
|
|
|
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")
|
|
mtboards = 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()
|