Как отобразить число из базы данных?
import flet as ft
import sqlite3
db = sqlite3.connect('data_of_num.db')
c = db.cursor()
qwe = 0
c.execute("""CREATE TABLE num (
number integer
)""")
def main(page: ft.Page):
page.title = 'my mini app'
page.theme_mode = 'light'
page.vertical_alignment = ft.MainAxisAlignment.CENTER
page.window_width = 250
page.window_height = 150
page.window_resizable = False
tex = ft.Text('', height= 20)
num = ft.TextField(value = '', width= 100, height= 35)
def get_info(e):
tex.value = num.value
qwe = num.value
c.execute(f"INSERT INTO num VALUES ({qwe})")
page.update()
add = ft.OutlinedButton(text='add', width=100, height=25, on_click = get_info)
panel = ft.Row(
[
ft.Column(
[
tex,
num,
add
]
)
],
alignment=ft.MainAxisAlignment.CENTER
)
page.add(panel)
db.commit()
db.close()
ft.app(target=main)
мне нужно написать программу, где есть поле для ввода, куда можно ввести число, и кнопка, по нажатию которой, число которое я ввел, отобразилось выше этого поля и потом даже после перезапуска программы, это число оставалось рядом с полем для ввода, и опять после ввода нового числа, это новое число заменило старое, и не исчезало после перезапуска.
вот я решил сохранять число которое ввел, в базу данных, а потом дописать функцию, что бы из базы данных забирать это число и вставлять рядом с полем для ввода, но я столкнулся с проблемой, что после запуска программы, и после ввода числа, оно не сохраняется в базу данных, и выдаёт ошибку:
sqlite3.ProgrammingError: SQLite objects created in a thread can only be used in that same thread.
The object was created in thread id 7252 and this is thread id 15008.
UPD CODE:
import flet as ft
import sqlite3
if __name__ == "__main__":
db = sqlite3.connect('data_of_num.db')
c = db.cursor()
c.execute("""CREATE TABLE num (number integer)""")
c.execute("INSERT INTO num VALUES(123)")
db.commit()
c.close()
db.close()
def main(page: ft.Page):
page.title = 'my mini app'
page.theme_mode = 'light'
page.vertical_alignment = ft.MainAxisAlignment.CENTER
page.window_width = 250
page.window_height = 150
page.window_resizable = False
db = sqlite3.connect('data_of_num.db')
c = db.cursor()
num_int = c.execute("SELECT number FROM num")
tex = ft.Text(f'{num_int}', height= 20)
db.commit()
c.close()
db.close()
num = ft.TextField(value = '', width= 100, height= 35)
def get_info(e):
tex.value = num.value
page.update()
add = ft.OutlinedButton(text='add', width=100, height=25, on_click = get_info)
panel = ft.Row(
[
ft.Column(
[
tex,
num,
add
]
)
],
alignment=ft.MainAxisAlignment.CENTER
)
page.add(panel)
ft.app(target=main)