rom sqlalchemy import create_engine, Column, Integer, TEXT, VARCHAR, DATE, DATETIME, ForeignKey, LargeBinary
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.orm import relationship, sessionmaker
from datetime import datetime
import hashlib
Base = declarative_base()
engine = create_engine('mysql+mysqlconnector://user31:42107@192.168.15.95:3306/user31', echo=True)
class Users(Base):
tablename = 'Polzovatel_avtorizacia'
iD_user = Column('Id_polzovatela', Integer, primary_key=True)
login = Column('Login', VARCHAR(100))
password = Column('Parol', VARCHAR(100))
Base.metadata.create_all(engine)
session = sessionmaker(bind=engine)
s = session()
def log_in(login, password):
try:
hash_password = hashlib.md5(bytes(password, 'UTF-8'))
log = s.query(Users).where(Users.login == login).one()
return hash_password.hexdigest() == log.password
except:
return False
def login_verification(login):
try:
log = s.query(Users).where(Users.login == login).all()
return False
except:
return True
def account_dannie_veridication(login, password, password_ver, message):
if login == '' or password == '':
message(None, 'Ошибка', 'Введите данные')
return
if password != password_ver:
message(None, 'Ошибка', 'Введены неверные данные')
return
if login_verification(login):
message(None, 'Ошибка', 'Такой логин уже существует')
return
return True
def sign_up(login, password):
hash_password = hashlib.md5(bytes(password, 'UTF-8'))
profil = Users(
login=login,
password=hash_password.hexdigest()
)
s.add(profil)
s.commit()
class Zaiavka_Na_Remont(Base):
tablename = 'Zaiavka_na_remont'
Nomer_zaiavki = Column("Nomer_zaiavki", Integer, primary_key=True)
ispolnitel = Column("Ispolnitel", Integer, ForeignKey('Ispolnitel.ID_ispolnitela'))
Klient = Column("Klient", Integer, ForeignKey('Klienti.Id_klienta'))
data_nachala_raboti = Column("Data_nachala_raboti", DATE)
data_oconchania_raboti = Column("Data_oconchania_raboti", DATE)
Oborydovanie = Column("Oborydovanie", VARCHAR(100))
Tip_Neispravnosti = Column("Tip_neispravnosti", VARCHAR(100))
Opisanie_Problemi = Column("Opisanie_problemi", VARCHAR(100))
StatysZaiavki = Column("Statys_zaiavki", VARCHAR(100))
Data_Obrashenia = Column("Data_obrashenia", DATE)
Base.metadata.create_all(engine)
session = sessionmaker(bind=engine)
s = session()
def dannie_zaiavki(Nomer_zaiavki, ispolnitel, Klient, data_nachala_raboti, data_oconchania_raboti, Oborydovanie, Tip_Neispravnosti, Opisanie_Problemi, StatysZaiavki, Data_Obrashenia, message):
if Nomer_zaiavki == '' or ispolnitel == '' or Klient == '' or data_nachala_raboti == '' or data_oconchania_raboti == '' or Oborydovanie == '' or Tip_Neispravnosti == '' or Opisanie_Problemi == '' or StatysZaiavki == '' or Data_Obrashenia == '':
message(None, 'Ошибка', 'Введите данные')
return
return True
def dannie(Nomer_zaiavki, ispolnitel, Klient, data_nachala_raboti, data_oconchania_raboti, Oborydovanie, Tip_Neispravnosti, Opisanie_Problemi, StatysZaiavki, Data_Obrashenia):
profil = Zaiavka_Na_Remont(
Nomer_zaiavki=Nomer_zaiavki,
ispolnitel=ispolnitel,
Klient=Klient,
data_nachala_raboti=data_nachala_raboti,
data_oconchania_raboti=data_oconchania_raboti,
Oborydovanie=Oborydovanie,
Tip_Neispravnosti=Tip_Neispravnosti,
Opisanie_Problemi=Opisanie_Problemi,
StatysZaiavki=StatysZaiavki,
Data_Obrashenia=Data_Obrashenia,
)
s.add(profil)
s.commit()
class Ispolnitely(Base):
tablename = 'Ispolnitel'
Id_ispolnitela = Column('ID_ispolnitela', Integer, primary_key=True)
Familia = Column('familia', VARCHAR(100))
Ima = Column('ima', VARCHAR(100))
Otchestvo = Column('otchestvo', VARCHAR(100))
Telefon = Column('Phone', VARCHAR(100))
Rabochii_grafic = Column('Rabochii_graphic', VARCHAR(100))
Base.metadata.create_all(engine)
session = sessionmaker(bind=engine)
s = session()
def dannie_ispolnitela(Id_ispolnitela, Familia, Ima, Otchestvo, Telefon, Rabochii_grafic, message):
if Id_ispolnitela == '' or Familia == '' or Ima == '' or Otchestvo == '' or Telefon == '' or Rabochii_grafic == '':
message(None, 'Ошибка', 'Введите данные')
return
return True
def dannie_ispolnitelei(Id_ispolnitela, Familia, Ima, Otchestvo, Telefon, Rabochii_grafic):
profil = Ispolnitely(
Id_ispolnitela=Id_ispolnitela,
Familia=Familia,
Ima=Ima,
Otchestvo=Otchestvo,
Telefon=Telefon,
Rabochii_grafic=Rabochii_grafic,
)
s.add(profil)
s.commit()
class Klienty(Base):
tablename = 'Klienti'
Id_klienta = Column('Id_klienta', Integer, primary_key=True)
Familia_klienti = Column('Familia', VARCHAR(100))
Ima_klienti = Column('Ima', VARCHAR(100))
Otchestvo_klienti = Column('Otchestvo', VARCHAR(100))
Telefon_klienti = Column('Telephon', VARCHAR(100))
Data_obrashenia_klienti = Column('Data_obrashenia', DATE)
Base.metadata.create_all(engine)
session = sessionmaker(bind=engine)
s = session()
def dannie_klienta(Id_klienta, Familia_klienti, Ima_klienti, Otchestvo_klienti, Telefon_klienti, Data_obrashenia_klienti, message):
if Id_klienta == '' or Familia_klienti == '' or Ima_klienti == '' or Otchestvo_klienti == '' or Telefon_klienti == '' or Data_obrashenia_klienti == '':
message(None, 'Ошибка', 'Введите данные')
return
return True
def dannie_klienty(Id_klienta, Familia_klienti, Ima_klienti, Otchestvo_klienti, Telefon_klienti, Data_obrashenia_klienti):
profil = Klienty(
Id_klienta=Id_klienta,
Familia_klienti=Familia_klienti,
Ima_klienti=Ima_klienti,
Otchestvo_klienti=Otchestvo_klienti,
Telefon_klienti=Telefon_klienti,
Data_obrashenia_klienti=Data_obrashenia_klienti
)
s.add(profil)
s.commit()