前提・実現したいこと
pythonでウィンドウを表示させ、そこに入力させた内容をDBに反映させたいのですが、
ウィンドウを表示させるコードと、DBを操作するコードを別のファイルに書くという条件で、ウィンドウを表示させたままDBを更新させる方法が分かりません。
該当のソースコード
gui.py
Python
1import tkinter as tk 2 3root = tk.Tk() 4root.title("Tkinterテスト") 5root.geometry("320x240") 6 7#ボタンを作る 8button = tk.Button(root, text="ok") 9button.place(x=200, y=68) 10 11#テキストボックス 12txt = tk.Entry(width=20) 13txt.place(x=50, y=70) 14 15def click(): 16 global word 17 word = txt.get() 18 txt.delete(0, tk.END) 19 label = tk.Label(text=word) 20 label.place(x=50, y=100) 21 import postgres 22 23button["command"] = click 24 25root.mainloop()
postgres.py
python
1from gui import word 2 3import psycopg2 4 5def connect(): 6 con = psycopg2.connect("host=" + "localhost" + 7 " port=" + "5432" + 8 " dbname=" + "dbname" + 9 " user=" + "user" + 10 " password=" + "password") 11 12 return con 13 14con = connect() 15 16def updatet_execute(con, slq): 17 with con.cursor() as cur: 18 cur.execute(sql) 19 20 con.commit() 21 22con = connect() 23 24sql = "update test set name = '" + ('%s' % word) + "'" 25 26updatet_execute(con, sql)
gui.py
でウィンドウを表示させ、ボタンがクリックされたときにpostgres.py
を呼び出すようなコードを書いています。
現状のコードですと、gui.py
を実行するとボタンをクリックした際にウィンドウがもう一つ表示(ボタンやテキストボックスがない)されてしまい、DBの更新もされません。
試したこと
gui.pyのimport postgres
の部分をそのままpostgres.py
の内容に置き換えればウィンドウを表示させたまま、DBも更新できることは確認できております。
ウィンドウを表示させるコードと、DBを操作するコードを別のファイルに書くという条件で実現させたいです。
以上、よろしくお願いいたします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/07/22 02:56