私はこれを探しましたが、問題はたくさんありましたが、それでもまだ理解できませんでした。シンプルにしようと思います。
私はこのコードを持っています、これは基本的にテキストボックスと送信ボタンです、ユーザーはテキストボックスにPythonコードを書き(コードはsqlite3の特定のテーブルまたはデータベースを変更または変更することです)、コードの送信を押した後、ユーザーはコードを送信します書き込みを実行する必要があります。
ユーザーがテキストボックスに書き込むコードの例:
insert into employee(id,first_name,last_name,password)
values (456,'test','tesst','testpass')
私がこれまでに持っているコードをお見せします:
admin_window = tk.Toplevel(root)
admin_window.title('Admin Window')
admin_window.geometry("450x450")
sql_commands = tk.Text(admin_window)
sql_commands.place(height=350, width=350,relx=0.5, rely=0.5, anchor='center')
submit_button = tk.Button(admin_window, text=' Submit ', command=submit_click)
submit_button.place(anchor='center',y=200,relx=0.5, rely=0.5,)
ご覧のとおり、テキストボックスがあります(テキストボックスはルートではなく新しいウィンドウにあります)
ユーザーが送信を押すと、これが彼からの入力を取得する方法です。
input = sql_commands.get("1.0",'end')
入力を正しく返しますが、型がおかしいです。型は数の束で、最後にstrがあります。
入力を取得して実行し、コードのように扱うにはどうすればよいですか?これは適切な方法でもありますか?
これは私のために働きます:
import tkinter as tk
def submit_click():
exec(sql_commands.get("1.0", 'end'))
root = tk.Tk()
admin_window = tk.Toplevel(root)
admin_window.title('Admin Window')
admin_window.geometry("450x450")
sql_commands = tk.Text(admin_window)
sql_commands.place(height=350, width=350, relx=0.5, rely=0.5, anchor='center')
submit_button = tk.Button(admin_window, text=' Submit ', command=submit_click)
submit_button.place(anchor='center', y=200, relx=0.5, rely=0.5,)
root.mainloop()
タイプは私の側では普通のようで、文字列だけです。ただし、「input」はPythonの組み込み関数であるため、使用しないでください。
exec()関数も組み込みであり、Pythonコードとして文字列を実行します。execに関する短いガイドはこちら
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加