"""
from tkinter import *
import csv
import tkinter.ttk as ttk
from tkinter.font import Font
from tkinter.ttk import Style, Treeview
#import mysql.connector
import textwrap
from constant_ip_calc import *
class Database_window:
def __init__(self):
super().__init__()
self.initUI()
def table_users(self):
self.database()
self.number_employeer = "SELECT ID_users, Entry_number, Time FROM users"
self.mycursor.execute(self.number_employeer)
self.result = self.mycursor.fetchall()
self.user_list = Frame(self.root)
self.user_list.place(x = 150, y = 200)
self.lst1 = []
self.heads = ['Номер пользователя','Номер записи','Время']
for i in range(len(self.result) - 1):
self.lst1 = self.result
self.table = ttk.Treeview(self.user_list, height=15, show = 'headings')
self.table['columns'] = self.heads
self.table['displaycolumns'] = ['Номер пользователя','Номер записи','Время']
for header in self.heads:
self.table.heading(header, text = header, anchor = 'center')
self.table.column(header, width= 300, minwidth = 300, anchor = 'center')
for row in self.lst1:
self.table.insert('','end', values = row)
self.scroll_pane = ttk.Scrollbar(self.user_list, command = self.table.yview)
self.table.configure(yscrollcommand = self.scroll_pane.set)
self.scroll_pane.pack(side = RIGHT, fill = Y)
self.table.pack(expand = YES, fill = BOTH)
self.btn_table_user.configure(bg =color_new_btn)
self.btn_table_ip_calc.configure(bg = color_btn)
self.btn_table_mask.configure(bg = color_btn)
def table_ip_calc(self):
self.database()
self.record = "SELECT Entry_number_employeer, IP_address, Subnet_Mask, Class_network, Converting_IP_Address_to_Binary_system, Converting_IP_Address_to_Decimal_system FROM ip_adress_table"
self.mycursor.execute(self.record)
self.result = self.mycursor.fetchall()
self.ip_calc_list = Frame(self.root)
self.ip_calc_list.place(x = 150, y = 200)
self.lst2 = []
self.heads = ['Номер записи','IP-адрес','Маска подсети','Класс сети', 'Перевод в двоичную систему', 'Перевод в шестнадцатеричную систему']
for i in range(len(self.result) - 1):
self.lst2 = self.result
self.table = ttk.Treeview(self.ip_calc_list, height=15, show = 'headings')
self.table['columns'] = self.heads
self.table['displaycolumns'] = ['Номер записи','IP-адрес','Маска подсети','Класс сети', 'Перевод в двоичную систему', 'Перевод в шестнадцатеричную систему']
n = 0
wid = 100
for header in self.heads:
self.table.heading(header, text = header, anchor = 'center')
self.table.column(header, width= wid, minwidth = 100, anchor = 'center')
if n == 1 :
wid = 200
if n == 2 :
wid = 70
if (n == 3) or (n == 4) :
wid = 270
n = n + 1
for row in self.lst2:
self.table.insert('','end', values = row)
self.scroll_pane = ttk.Scrollbar(self.ip_calc_list, command = self.table.yview)
self.table.configure(yscrollcommand = self.scroll_pane.set)
self.scroll_pane.pack(side = RIGHT, fill = Y)
self.user_list.destroy()
self.table.pack(expand = YES, fill = BOTH)
self.btn_table_user.configure(bg = color_btn)
self.btn_table_ip_calc.configure(bg = color_new_btn)
self.btn_table_mask.configure(bg = color_btn)
def table_maska(self):
self.record = "SELECT Entry_number_for_mask, Mask, Network_address, Node_address, Number_of_node, Broadcast_address, Broadcast_node_addres, Available_address, IP_hostmin_hostmax, Subnet FROM mask_table"
self.mycursor.execute(self.record)
self.result = self.mycursor.fetchall()
self.maska_list = Frame(self.root)
self.maska_list.place(x = 30, y = 200)
self.lst3 = []
self.heads = ['Номер записи','Маска подсети','Адрес сети','Адрес узла', 'Количество узлов',
'Широковещательный адрес','Широковещательный узел','Доступные адреса','IP первый/последний','Адреса подсети']
self.table = ttk.Treeview(self.maska_list, style = 'Calendar.Treeview', height=15, show = 'headings')
for i in range(len(self.result) - 1):
self.lst3 = self.result
self.table['columns'] = self.heads
self.table['displaycolumns'] = ['Номер записи','Маска подсети','Адрес сети','Адрес узла', 'Количество узлов',
'Широковещательный адрес','Широковещательный узел','Доступные адреса','IP первый/последний','Адреса подсети']
n = 0
wid = 90
for header in self.heads:
if n == 1:
wid = 107
if n == 3:
wid = 120
if n == 6:
wid = 160
if n == 4:
wid = 90
if n == 5:
wid = 165
if (n == 7):
wid = 120
if (n == 8):
wid = 100
self.table.heading(header, text = header, anchor = 'center')
self.table.column(header,width = wid , anchor = 'center')
n = n + 1
for row in self.lst3:
self.table.insert('','end', values = row)
self.scroll_pane = ttk.Scrollbar(self.maska_list, command = self.table.yview)
self.table.configure(yscrollcommand = self.scroll_pane.set)
self.scroll_pane.pack(side = RIGHT, fill = Y)
self.btn_table_user.configure(bg = color_btn)
self.btn_table_ip_calc.configure(bg = color_btn)
self.btn_table_mask.configure(bg = color_new_btn)
self.table.pack(expand = YES, fill = BOTH)
def chek_user(self):
global chek_table_user
global chek_table_ip
global chek_table_mask
chek_table_user = 1
if chek_table_ip == 1:
self.ip_calc_list.destroy()
chek_table_ip = 0
if chek_table_mask == 1:
self.maska_list.destroy()
chek_table_mask = 0
def chek_ip(self):
global chek_table_user
global chek_table_ip
global chek_table_mask
chek_table_ip = 1
if chek_table_user == 1:
chek_table_user = 0
self.user_list.destroy()
else:
pass
if chek_table_mask == 1:
chek_table_mask = 0
self.maska_list.destroy()
def chek_maska(self):
global chek_table_user
global chek_table_ip
global chek_table_mask
chek_table_mask = 1
if chek_table_ip == 1:
self.ip_calc_list.destroy()
chek_table_ip = 0
if chek_table_mask == 1:
self.user_list.destroy()
chek_table_user = 0
def start_table_user(self):
self.table_users()
self.chek_user()
def start_table_ip(self):
self.table_ip_calc()
self.chek_ip()
def start_table_maska(self):
self.table_maska()
self.chek_maska()
def __init__(self, parent, title="База данных", resizable=(False, False), icon = None):
self.root = Toplevel(parent)
self.root.title(title)
self.root.geometry("1240x600+200+200")
self.root.config(bg = color)
self.file_frame_table = LabelFrame(self.root, text = 'Таблицы')
self.file_frame_table.place(height = 150, width = 150, x = 50, y = 30 )
try:
self.photo1 = PhotoImage(file='ip_bd.png')
self.root.iconphoto(False, self.photo1)
except Exception:
print('Нет фотографии для База данных')
self.file_frame_search = LabelFrame(self.root, text = 'База данных')
self.file_frame_search.place(height = 370, width = 1190, x = 20 , y = 180 )
self.label_ip = Label(self.root, text = 'База данных', bg = color, font = font_label)
self.label_ip.place(x = 450, y = 8)
self.btn_table_user = Button(self.root, text = 'Операции' ,bg = color_btn,font = font_btn, command = self.start_table_user)
self.btn_table_user.place(x = 60, y = 50)
self.btn_table_ip_calc = Button(self.root, text = 'IP-калькулятор',bg = color_btn,font = font_btn, command = self.start_table_ip)
self.btn_table_ip_calc.place(x= 60 , y = 90)
self.btn_table_mask = Button(self.root, text = 'Маска' , bg = color_btn,font = font_btn, command = self.start_table_maska)
self.btn_table_mask.place(x = 60, y = 130)
self.btn_destroy = Button(self.root, text = 'Вернуться к окну IP-калькулятор',bg = color_btn,font = font_btn,activebackground = color_new_btn, command = self.destroy_window_database)
self.btn_destroy.place(x = 900, y = 50)
self.table_users()
self.grab_focus()
if icon:
self.root.iconbitmap(icon)
def grab_focus(self):
self.root.grab_set()
self.root.focus_set()
self.root.wait_window()
def destroy_window_database(self):
self.root.destroy()
global chek_table_user
global chek_table_ip
global chek_table_mask
chek_table_user = 0
chek_table_ip = 0
chek_table_mask = 0
def database(self):
self.mydb = mysql.connector.connect(
host='78.24.217.186',
port=2417,
database='data_Calculate',
user='businessapp',
password='zjekgf7tvj6go57ky3zv4w645wf1mipya9'
)
self.mycursor = self.mydb.cursor()
"""
Соседние файлы в папке IP-калькулятор (python)