Compare commits

..

8 Commits

Author SHA1 Message Date
543c056237 sinc local and remote 2023-06-20 20:54:15 +03:00
9141056a9b Merge branch 'danamir' of https://git.danamir.ru/danamir/danrazdipl into danamir 2023-06-20 20:54:08 +03:00
006dee506e local 2023-06-20 20:51:44 +03:00
danamir
b4895b787e worked db 2023-06-18 14:08:35 +03:00
danamir
cd3a1b1f15 Rename table 2023-06-18 13:54:30 +03:00
danamir
3bfca19387 add motherboard to model 2023-06-18 13:21:13 +03:00
danamir
05e42ca382 worked model with adding default admin 2023-06-18 13:09:55 +03:00
danamir
aff62e048e worked model with adding default admin 2023-06-18 13:06:51 +03:00
6 changed files with 866 additions and 26 deletions

5
.gitignore vendored
View File

@@ -161,4 +161,7 @@ cython_debug/
#.idea/ #.idea/
*.db *.db
.vscode *.vscode
*.json
.vscode/settings.json
modelbackup.py

View File

@@ -1,6 +1,6 @@
{ {
"[python]": { "[python]": {
"editor.defaultFormatter": "ms-python.autopep8" "editor.defaultFormatter": "ms-python.python"
}, },
"python.formatting.provider": "none" "python.formatting.provider": "none"
} }

692
backup/main.py Normal file
View File

@@ -0,0 +1,692 @@
from sqlalchemy import create_engine
from sqlalchemy.orm import sessionmaker
from sqlalchemy.orm import registry
from sqlalchemy import create_engine
from sqlalchemy.sql.expression import and_
from datetime import date
from models import *
from tkinter import *
from functools import partial
from tkinter import messagebox, ttk
mapper_registry = registry()
engine = create_engine('sqlite:///dipl.db', echo=True)
Base = mapper_registry.generate_base()
Session = sessionmaker(bind=engine)
def main():
window = Tk()
window.geometry("400x400")
window.title("Вход в аккаунт")
window.config(bg="#5D6D7E")
lbl1=Label(window,text="Добро пожаловать",font=("",25),fg="#fed9b7",bg="#5D6D7E")
lbl1.pack(anchor="center")
lbl2=Label(window,text="Логин:",font=("",20),fg="#fdfcdc",bg="#5D6D7E")
lbl2.place(x=10,y=90)
ent1=Entry(window)
ent1.place(x=200,y=100)
lbl3=Label(window,text="Пароль:",font=("",20),fg="#fdfcdc",bg="#5D6D7E")
lbl3.place(x=10,y=170)
ent3=Entry(window)
ent3.place(x=200,y=180)
btn1=Button(window,text="Принять", command=lambda: validateLogin(ent1.get(), ent3.get()))
btn1.place(x=250,y=300)
btn2=Button(window,text="Настройки",command=options)
btn2.place(x=70,y=300)
window.mainloop()
def options():
window = Tk()
window.geometry("400x400")
window.title("Настройки")
window.config(bg="#5D6D7E")
lbl1=Label(window,text="Измените настройки программы",font=("",25),fg="#fed9b7",bg="#5D6D7E")
lbl1.pack(anchor="center")
bo1=Button(window,text="1. Добавить должность",command=addDolgnostGui)
bo1.place(x=50,y=100)
bo2=Button(window,text="2. Добавить пользователя",command=addUserGui)
bo2.place(x=200,y=100)
bo3=Button(window,text="3. Добавить принтер",command=addPrinterGui)
bo3.place(x=50,y=200)
bo4=Button(window,text="4. Добавить пластик",command=addPlasticGui)
bo4.place(x=200,y=200)
window.mainloop()
def validateLogin(username, password):
sess = Session()
users = sess.query(Users).filter(Users.login==username, Users.passwd==password)
results = users.first()
if hasattr(results,"login"):
messagebox.showinfo(title="Успех", message="Вы успешно авторизировались в ситеме.")
else:
messagebox.showinfo(title="Успех", message="Вы НЕ авторизировались в ситеме.")
return
def addUserGui():
window = Tk()
window.geometry("300x500")
window.config(bg="#5D6D7E")
l1 = Label(window, text="ФИО")
l1.place(x=50,y=100)
fio = Entry(window)
fio.place(x=150,y=100)
l2 = Label(window, text="Должность")
l2.place(x=50,y=150)
dlg = getDolgnost()
dlg_var = StringVar(value=dlg[0])
dolgnost = ttk.Combobox(window,textvariable=dlg_var, values=dlg)
dolgnost.place(x=150,y=150)
l3 = Label(window, text="Логин")
l3.place(x=50,y=250)
login = Entry(window)
login.place(x=150,y=250)
l4 = Label(window, text="Пароль")
l4.place(x=50,y=300)
passwd = Entry(window)
passwd.place(x=150,y=300)
print(dolgnost.get())
button_add = Button(window, text="Добавить", command=lambda: addUser(fio.get(),
dolgnost.get(),
login.get(),
passwd.get()))
button_add.place(x=100,y=350)
def addUser(fio, dolgnost, login, passwd):
sess = Session()
dlg = sess.query(Dolgnost).filter(Dolgnost.dolgnst==dolgnost).first()
newuser = Users(fio=fio, id_dolgnost=dlg.id, login=login, passwd=passwd)
sess.add(newuser)
sess.commit()
sess.close()
window.mainloop()
def addPrinterGui():
window = Tk()
window.geometry("300x300")
window.config(bg="#5D6D7E")
lp1 = Label(window, text="Название")
lp1.place(x=15,y=20)
nazvaniee = Entry(window)
nazvaniee.place(x=160,y=20)
lp2 = Label(window, text="Макс Скорость Печати")
lp2.place(x=15,y=70)
maxSpedPrint = Entry(window)
maxSpedPrint.place(x=160,y=70)
lp3 = Label(window, text="Мин Скорость Печати")
lp3.place(x=15,y=120)
minSpedPrint = Entry(window)
minSpedPrint.place(x=160,y=120)
bapg=Button(window,text="Добавить",command=lambda:addPrinter(nazvaniee.get(),
maxSpedPrint.get(),
minSpedPrint.get()))
bapg.place(x=220,y=170)
def addPrinter(nazvanie, maxsped,minspeed):
sess = Session()
new = Printer(nazvanie=nazvanie, maxSpedPrint=maxsped, minSpedPrint=minspeed)
sess.add(new)
sess.commit()
sess.close()
minSpedPrint.delete(0, END)
maxSpedPrint.delete(0, END)
nazvaniee.delete(0, END)
window.mainloop()
def addPlasticGui():
window = Tk()
window.geometry("380x350")
window.config(bg="#5D6D7E")
lpl1 = Label(window, text="Название")
lpl1.place(x=15,y=20)
nazvanie = Entry(window)
nazvanie.place(x=170,y=20)
lpl2 = Label(window, text="Диаметр")
lpl2.place(x=15,y=70)
diametr = Entry(window)
diametr.place(x=170,y=70)
lpl3 = Label(window, text="Мин Температура Печати")
lpl3.place(x=15,y=120)
mintempprint = Entry(window)
mintempprint.place(x=170,y=120)
lpl4 = Label(window, text="Макс Температура Печати")
lpl4.place(x=15,y=170)
maxtemprint = Entry(window)
maxtemprint.place(x=170,y=170)
lpl5 = Label(window, text="Дата Производства")
lpl5.place(x=15,y=230)
days = list(range(1, 32))
months = list(range(1, 13))
years = list(range(1940, 2026))
# Create ComboBox for days
day_combobox = ttk.Combobox(window,values=days,width=2)
day_combobox.place(x=140,y=230)
# Create ComboBox for months
month_combobox = ttk.Combobox(window,values=months,width=2)
month_combobox.place(x=185,y=230)
# Create ComboBox for years
year_combobox = ttk.Combobox(window,values=years,width=4)
year_combobox.place(x=225,y=230)
def convert_to_date():
# Retrieve selected values from the ComboBoxes
selected_day = int(day_combobox.get())
selected_month = int(month_combobox.get())
selected_year = int(year_combobox.get())
# Convert the selected values to a date object
date_obj = date(selected_year, selected_month, selected_day)
return date_obj
bapg=Button(window,text="Добавить",command=lambda:addPlastic(nazvanie.get(),
diametr.get(),
mintempprint.get(),
maxtemprint.get(),
convert_to_date()))
bapg.place(x=230,y=280)
def addPlastic(nazvanie, diametr, mintempprint, maxtempprint, dateproizv):
sess = Session()
new = Plastic(nazvanie=nazvanie,
diametr=diametr,
minTempPrint=mintempprint,
maxTempPrint=maxtempprint, dateproizv=dateproizv)
sess.add(new)
sess.commit()
sess.close()
window.mainloop
def addDolgnostGui():
window = Tk()
window.geometry("300x120")
window.config(bg="#5D6D7E")
l1 = Label(window,bg="#5D6D7E",text="Должность")
l1.grid(row=1, column=0)
dolg = Entry(window)
dolg.grid(row=1, column=1)
button_add = Button(window, text="Добавить", command=lambda: addDolgnost(dolg.get()))
button_add.grid(row=5, column=2)
def addDolgnost(dolgnost):
sess = Session()
new = Dolgnost(dolgnst = dolgnost)
sess.add(new)
sess.commit()
sess.close()
dolg.delete(0, END)
window.mainloop()
def addPrintSettingsGui():
window = Tk()
window.geometry("800x600")
prntc = getPinters()
prnt_var = StringVar(value = prntc[0])
plstc = getPlastics()
plst_var = StringVar(value=plstc[0])
l1 = Label(window,bg="#5D6D7E",text="Выберите принтер")
l1.place(x=10, y=30)
prnt = ttk.Combobox(window,textvariable=prnt_var, values=prntc)
prnt.place(x=210,y=20)
l2 = Label(window,bg="#5D6D7E",text="Выберите пластик")
l2.place(x=10, y=80)
plst = ttk.Combobox(window,textvariable=plst_var, values=plstc)
plst.place(x=210,y=80)
l3 = Label(window,bg="#5D6D7E",text="Введите температуру сопла")
l3.place(x=10, y=120)
tempsopla = Entry(window)
tempsopla.place(x=210, y=120)
l4 = Label(window,bg="#5D6D7E",text="Введите температуру стола")
l4.place(x=10, y=200)
tempstola = Entry(window)
tempstola.place(x=210, y=200)
l5 = Label(window,bg="#5D6D7E",text="Введите процент заполнения")
l5.place(x=10, y=250)
procentZapoln= Entry(window)
procentZapoln.place(x=210, y=250)
l6 = Label(window,bg="#5D6D7E",text="Введите скорость печати")
l6.place(x=10, y=250)
printSpeed= Entry(window)
printSpeed.place(x=210, y=300)
goodset = IntVar()
chk = Checkbutton(window, text='Оптимальные настройки', variable=goodset)
chk.place(x=10, y=350)
l6 = Label(window,bg="#5D6D7E",text="Примечание")
l6.place(x=10, y=400)
primech= Entry(window)
primech.place(x=210, y=400)
button_add = Button(window, text="Добавить", command=lambda: addPrintSettings(prnt.get(),
plst.get(),
tempsopla.get(),
tempstola.get(),
procentZapoln.get(),
goodset.get(),
printSpeed.get(),
primech.get()))
button_add.place(x=100, y=400)
def addPrintSettings(prnt,
plst,
tempstola,
tempsopla,
procentzapoln,
goodset,
printspeed,
primech):
sess = Session()
printer = sess.query(Printer).filter(Printer.nazvanie==prnt).first()
plast = sess.query(Plastic).filter(Plastic.nazvanie==plst).first()
gs=False
if goodset == 0:
gs=False
else:
gs=True
import time
addtime=time.localtime()
new = PrintSettings(tempStol=tempstola,
tempSopl=tempsopla,
procentZapoln=procentzapoln,
PrintSpeed=printspeed,
good_set=gs,
#time_add=addtime,
primechanie=primech,
id_printer=printer.id,
id_plastic=plast.id,
)
sess.add(new)
sess.commit()
sess.close()
#minSpedPrint.delete(0, END)
"""
dataFrame = Frame(window)
dataFrame.pack()
table_pre_data = {'tempstol':'Темп. стола', 'tempsopl':'Темп. сопла'}
table_columns = []
table_headers = []
for key, value in table_pre_data.items():
table_columns.append(key)
table_headers.append(value)
prDataFrame = ttk.Treeview(dataFrame)
prDataFrame['columns'] = table_columns
for col in table_columns:
prDataFrame.column(col, width=100)
for col in table_headers:
prDataFrame.heading(col,text=value)
#
"""
#bapg=Button(window,text="Добавить",command=lambda:getPrintSetings())
window.mainloop()
def getPrintSettings():
sess = Session()
print()
print("query")
print()
"""
psettings = (sess.query(PrintSettings, Printer, Plastic)
.join(Printer, PrintSettings.id_printer==Printer.id)
.filter(Printer.id==1)
.join(Plastic, PrintSettings.id_plastic==Plastic.id)
.filter(Plastic.nazvanie=="fdplast")
.all()
)
"""
psettings= ( sess.query(PrintSettings).join(Printer).join(Plastic)
.filter((Printer.nazvanie=="ender3" and Plastic.nazvanie=="fdplast"
)
).all()
)
print(psettings)
for qwe in psettings:
print(qwe.id_plastic)
plst_naz = sess.query(Plastic).filter(Plastic.id==psettings[0].id_plastic).first()
print()
print(plst_naz.nazvanie)
print()
#print(psettings[0][1].nazvanie)
print()
sess.close()
def getUsers():
sess= Session()
users = sess.query(Users).join(Dolgnost).all()
usr=[]
for user in users:
a = []
dolg = sess.query(Dolgnost).filter(Dolgnost.id==user.id_dolgnost).first()
a.append(user.fio)
a.append(dolg.dolgnst)
a.append(user.isadmin)
usr.append(a)
return usr
def getDolgnost():
sess = Session()
dlggs = sess.query(Dolgnost).all()
print(dlggs)
dlg_list = []
for dlg in dlggs:
dlg_list.append(dlg.dolgnst)
sess.close()
return dlg_list
def getPinters():
sess = Session()
printers = sess.query(Printer).all()
prnt = []
for printer in printers:
prnt.append(printer.nazvanie)
sess.close()
return prnt
def getPlastics():
sess = Session()
plastics = sess.query(Plastic).all()
plst = []
for plastic in plastics:
plst.append(plastic.nazvanie)
sess.close()
return plst
def showAllUsersGui():
window = Tk()
window.geometry("800x600")
window.iconbitmap(default="3d-printer.ico")
window.title("Все пользователи системы")
lbl1=Label(window,text="Все пользователи системы",font=("",25),fg="#fed9b7",bg="#5D6D7E")
lbl1.pack(anchor="center")
users = getUsers()
tree = ttk.Treeview(window, column=("fio", "Dolgnost", "isadmin"), show='headings', height=5)
tree.column("# 1", anchor=CENTER)
tree.heading("# 1", text="ФИО")
tree.column("# 2", anchor=CENTER)
tree.heading("# 2", text="Должность")
tree.column("# 3", anchor=CENTER)
tree.heading("# 3", text="Администратор")
for user in users:
if user[2]==False:
tree.insert('', 'end', text="1", values=(user[0], user[1], "Нет"))
else:
tree.insert('', 'end', text="1", values=(user[0], user[1], "Да"))
#
tree.pack()
mainloop()
def editUsers():
root = Tk()
columns = ("Items", "Values")
Treeview = ttk.Treeview(root, height=18, show="headings", columns=columns) #
Treeview.column("Items", width=200, anchor='center')
Treeview.column("Values", width=200, anchor='center')
Treeview.heading("Items", text="Items")
Treeview.heading("Values", text="Values")
Treeview.pack(side=LEFT, fill=BOTH)
name = ['Item1', 'Item2', 'Item3']
ipcode = ['10', '25', '163']
for i in range(min(len(name), len(ipcode))):
Treeview.insert('', i, values=(name[i], ipcode[i]))
def treeview_sort_column(tv, col, reverse):
l = [(tv.set(k, col), k) for k in tv.get_children('')]
l.sort(reverse=reverse)
for index, (val, k) in enumerate(l):
tv.move(k, '', index)
tv.heading(col, command=lambda: treeview_sort_column(tv, col, not reverse))
def set_cell_value(event):
for item in Treeview.selection():
item_text = Treeview.item(item, "values")
column = Treeview.identify_column(event.x)
row = Treeview.identify_row(event.y)
cn = int(str(column).replace('#', ''))
rn = int(str(row).replace('I', ''))
entryedit = Text(root, width=10 + (cn - 1) * 16, height=1)
entryedit.place(x=16 + (cn - 1) * 130, y=6 + rn * 20)
def saveedit():
Treeview.set(item, column=column, value=entryedit.get(0.0, "end"))
entryedit.destroy()
okb.destroy()
okb = ttk.Button(root, text='OK', width=4, command=saveedit)
okb.place(x=90 + (cn - 1) * 242, y=2 + rn * 20)
def newrow():
name.append('to be named')
ipcode.append('value')
Treeview.insert('', len(name) - 1, values=(name[len(name) - 1], ipcode[len(name) - 1]))
Treeview.update()
newb.place(x=120, y=(len(name) - 1) * 20 + 45)
newb.update()
Treeview.bind('<Double-1>', set_cell_value)
newb = ttk.Button(root, text='new item', width=20, command=newrow)
newb.place(x=120, y=(len(name) - 1) * 20 + 45)
for col in columns:
Treeview.heading(col, text=col, command=lambda _col=col: treeview_sort_column(Treeview, _col, False))
root.mainloop()
def ShowOptimalSettingsGui():
root = Tk()
root.title(" ")
root.geometry("700x500")
root.config(bg="#5D6D7E")
l2 = Label(root,bg="#5D6D7E",text="Выберите принтер")
l2.place(x=10, y=20)
prnt = ttk.Combobox(root,textvariable="123", values=['Ender3', 'Kossel Delta'])
prnt.place(x=150, y=20)
l2 = Label(root,bg="#5D6D7E",text="Выберите произв")
l2.place(x=10, y=60)
prnt2 = ttk.Combobox(root,textvariable="1123", values=['Fdplast', 'Filamentarno'])
prnt2.place(x=150, y=60)
l3 = Label(root,bg="#5D6D7E",text="Выберите Тип пластика")
l3.place(x=10, y=100)
prnt3 = ttk.Combobox(root,textvariable="11234", values=['pla', 'petg', 'abs'])
prnt3.place(x=150, y=100)
l2 = Label(root,bg="#5D6D7E",text="Выберите цвет")
l2.place(x=10, y=140)
prnt4 = ttk.Combobox(root,textvariable="1", values=['Голубой', 'Зелёгый'])
prnt4.place(x=150, y=140)
chc=ttk.Checkbutton(root,text="Выбрать оптимальные?")
chc.place(x=100, y=170)
# определяем данные для отображения
people = [(209, 58, "57мм/cек", " "), (223, 75, "45мм/cек", "Проба прочности"), (211, 55, "57мм/cек", "Хорошая поверхность")]
people2 = [(211, 59, "62мм/cек")]
# определяем столбцы
columns = ("tempSopl", "tempStol", "Speed", "addit")
tree = ttk.Treeview(columns=columns, show="headings")
tree.place( x=10, y=220)
button_add = Button(root, text="Показать")
button_add.place(x=10, y=170)
# определяем заголовки с выпавниваем по левому краю
tree.heading("tempSopl", text="Температура сопла", anchor=W)
tree.heading("tempStol", text="Температура стола", anchor=W)
tree.heading("Speed", text="Скорость печати", anchor=W)
tree.heading("addit", text="Примечание", anchor=W)
# настраиваем столбцы
tree.column("#1", stretch=NO, width=200)
tree.column("#2", stretch=NO, width=200)
tree.column("#3", stretch=NO, width=200)
tree.column("#4", stretch=NO, width=200)
# добавляем данные
for person in people:
tree.insert("", END, values=person)
root.mainloop()
if __name__ == '__main__':
ShowOptimalSettingsGui()

121
backup/models.py Normal file
View File

@@ -0,0 +1,121 @@
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 Proshivka(Base):
__tablename__ = "Proshivka"
id = Column(Integer, primary_key=True)
nazvanie = Column(String)
versia = Column(String)
officialSite = Column(String)
printers = relationship('Motherboard', backref='Proshivka')
class Mottherboard(Base):
__tablename__ = "Motherboard"
id = Column(Integer, primary_key=True)
nazvanie = Column(String)
versia = Column(String)
officialSite = Column(String)
kolvoDraivers = Column(String)
drivers = relationship('Driver', backref='Motherboard')
proshivkas = Column(Integer, ForeignKey(Proshivka.id))
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 Driver():
__tablename__ = "Driver"
id = Column(Integer, primary_key=True)
nazvanie = Column(String)
versia = Column(String)
rabTok = Column(Integer)
motherId = 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()
newuser = Users(fio="admin", dolgnost="admin",
login="admin", passwd="123456")
sess.add(newuser)
sess.commit()
sess.close()
"""
if __name__ == '__main__':
create_db()

View File

@@ -78,6 +78,7 @@ def validateLogin(username, password):
if hasattr(results,"login"): if hasattr(results,"login"):
messagebox.showinfo(title="Успех", message="Вы успешно авторизировались в ситеме.") messagebox.showinfo(title="Успех", message="Вы успешно авторизировались в ситеме.")
ShowOptimalSettingsGui()
else: else:
messagebox.showinfo(title="Успех", message="Вы НЕ авторизировались в ситеме.") messagebox.showinfo(title="Успех", message="Вы НЕ авторизировались в ситеме.")
return return
@@ -277,7 +278,7 @@ def addDolgnostGui():
window.mainloop() window.mainloop()
def addPrintSettingsGui(): def addPrintSettingsGui() -> None:
window = Tk() window = Tk()
window.geometry("800x600") window.geometry("800x600")
@@ -405,7 +406,7 @@ def addPrintSettingsGui():
prDataFrame['columns'] = table_columns prDataFrame['columns'] = table_columns
for col in table_columns: for col in table_columns:
prDataFrame.column(col, width=100) prDataFrfrom sqlalchemy import create_engineame.column(col, width=100)
for col in table_headers: for col in table_headers:
prDataFrame.heading(col,text=value) prDataFrame.heading(col,text=value)
@@ -687,6 +688,6 @@ def ShowOptimalSettingsGui():
if __name__ == '__main__': if __name__ == '__main__':
ShowOptimalSettingsGui() main()

View File

@@ -1,9 +1,14 @@
from sqlalchemy import Column, Integer, String, create_engine, ForeignKey, DateTime, Boolean """
module docstring
"""
from sqlalchemy import Column, Integer, String, create_engine, ForeignKey, DateTime, Boolean,Float, Float
from sqlalchemy.ext.declarative import declarative_base from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.orm import sessionmaker, aliased, Query, relationship from sqlalchemy.orm import sessionmaker, aliased, Query, relationship
from sqlalchemy.sql import func from sqlalchemy.sql import func
from sqlalchemy.orm import registry from sqlalchemy.orm import registry
from sqlalchemy import create_engine
mapper_registry = registry() mapper_registry = registry()
@@ -11,7 +16,6 @@ engine = create_engine('sqlite:///dipl.db', echo=True)
Base = mapper_registry.generate_base() Base = mapper_registry.generate_base()
Session = sessionmaker(bind=engine) Session = sessionmaker(bind=engine)
class Proshivka(Base): class Proshivka(Base):
__tablename__ = "Proshivka" __tablename__ = "Proshivka"
id = Column(Integer, primary_key=True) id = Column(Integer, primary_key=True)
@@ -19,10 +23,13 @@ class Proshivka(Base):
versia = Column(String) versia = Column(String)
officialSite = Column(String) officialSite = Column(String)
printers = relationship('Motherboard', backref='Proshivka') mboards = relationship("Motherboard")
class Mottherboard(Base):
class Motherboard(Base):
__tablename__ = "Motherboard" __tablename__ = "Motherboard"
id = Column(Integer, primary_key=True) id = Column(Integer, primary_key=True)
nazvanie = Column(String) nazvanie = Column(String)
@@ -30,9 +37,24 @@ class Mottherboard(Base):
officialSite = Column(String) officialSite = Column(String)
kolvoDraivers = Column(String) kolvoDraivers = Column(String)
drivers = relationship('Driver', backref='Motherboard') prshvID = Column(Integer, ForeignKey(Proshivka.id))
proshivkas = Column(Integer, ForeignKey(Proshivka.id)) printers = relationship("Printer")
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(Motherboard.id))
class Printer(Base): class Printer(Base):
@@ -44,17 +66,10 @@ class Printer(Base):
maxSpedPrint = Column(Integer) maxSpedPrint = Column(Integer)
minSpedPrint = Column(Integer) minSpedPrint = Column(Integer)
print_settings = relationship("PrintSettings", backref="Printer") print_settings = relationship("PrintSettings")
mtboards = Column(Integer, ForeignKey(Mottherboard.id)) mboard_id = Column(Integer, ForeignKey(Motherboard.id))
class Driver():
__tablename__ = "Driver"
id = Column(Integer, primary_key=True)
nazvanie = Column(String)
versia = Column(String)
rabTok = Column(Integer)
motherId = Column(Integer, ForeignKey(Mottherboard.id))
class Plastic(Base): class Plastic(Base):
@@ -69,7 +84,7 @@ class Plastic(Base):
maxTempPrint = Column(Integer) maxTempPrint = Column(Integer)
dateproizv = Column(DateTime) dateproizv = Column(DateTime)
print_settings = relationship("PrintSettings", backref="Plastic") print_settings = relationship("PrintSettings")
class PrintSettings(Base): class PrintSettings(Base):
@@ -87,6 +102,7 @@ class PrintSettings(Base):
id_plastic = Column(Integer, ForeignKey(Plastic.id)) id_plastic = Column(Integer, ForeignKey(Plastic.id))
class Dolgnost(Base): class Dolgnost(Base):
__tablename__ = "Dolgnost" __tablename__ = "Dolgnost"
id = Column(Integer, primary_key=True) id = Column(Integer, primary_key=True)
@@ -108,14 +124,21 @@ class Users(Base):
def create_db(): def create_db():
Base.metadata.create_all(engine) Base.metadata.create_all(engine)
"""
sess = Session() sess = Session()
newuser = Users(fio="admin", dolgnost="admin", 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") login="admin", passwd="123456")
sess.add(newuser) sess.add(newuser)
sess.commit() sess.commit()
sess.close() sess.close()
"""
if __name__ == '__main__': if __name__ == '__main__':
create_db() create_db()