Форум сайта python.su
Здравствуйте, дополнить код.
Надо чтобы можно было в entry вводить название таблице, и в label выводились данные из этой таблицы а не из RESULTS.
Заранее огромное спасибо!
from tkinter import * import sqlite3 as lite import sys def s(): con = lite.connect('sport.sqlite') with con: cur = con.cursor() cur.execute("SELECT * FROM RESULTS") text = '' while True: row = cur.fetchone() if row == None: break text += str(row[0]) + " | " + "id команды: " + str(row[1]) + " | " + "Всего игр: " + str(row[2]) + " | " + "Выигрышей: " + str(row[3]) + " | " + "Поражений: " + str(row[4]) + " | " + "Разница в голах: " + str(row[5]) + " | " + "Очков: " + str(row[6]) + '\n' label7["text"] = text root=Tk() root.title("Работа с базой данных") btn4 = Button(root, text="OK", font= "Arial 10", command = s) btn4.grid(row=1, column=0) label7 = Label(root) label7.grid(row=2, column=0) ent3 = Entry(root) ent3.grid(row=0, column=0) root.mainloop()
Офлайн
# from tkinter import * import sqlite3 as lite import sys def s(entry): con = lite.connect('sport.sqlite') table_name = entry.get() with con: cur = con.cursor() cur.execute("SELECT * FROM {}".format(table_name.upper())) text = '' while True: row = cur.fetchone() if row == None: break text += str(row[0]) + " | " + "id команды: " + str(row[1]) + " | " + "Всего игр: " + str(row[2]) + " | " + "Выигрышей: " + str(row[3]) + " | " + "Поражений: " + str(row[4]) + " | " + "Разница в голах: " + str(row[5]) + " | " + "Очков: " + str(row[6]) + '\n' label7["text"] = text root=Tk() root.title("Работа с базой данных") label7 = Label(root) label7.grid(row=2, column=0) ent3 = Entry(root) ent3.grid(row=0, column=0) btn4 = Button(root, text="OK", font= "Arial 10", command = lambda: s(ent3)) btn4.grid(row=1, column=0) root.mainloop()
Отредактировано 4kpt_V (Март 17, 2017 20:06:57)
Офлайн
4kpt_VСпасибо, а как сделать чтобы не надо было каждый раз менять эту часть кода:
text += str(row[0]) + " | " + "id команды: " + str(row[1]) + " | " + "Всего игр: " + str(row[2]) + " | " + "Выигрышей: " + str(row[3]) + " | " + "Поражений: " + str(row[4]) + " | " + "Разница в голах: " + str(row[5]) + " | " + "Очков: " + str(row[6]) + '\n'
Офлайн
# position_name = ("", "id команды: ", "Всего игр: ", "Выигрышей: ") # line_text_block = [] for name, data in zip(position_name, row): line_text_block.append("{}{}".format(name, data)) result_line = " | ".join(line_text_block) #
# position_name = ("", "id команды: ", "Всего игр: ", "Выигрышей: ") # result_line = " | ".join(["{}{}".format(name, data) for name, data in zip(position_name, row)]) #
Офлайн