【发布时间】:2020-12-15 21:01:13
【问题描述】:
我搜索了这个,但问题很多,但仍然无法弄清楚。 我会尽量保持简单。
我有这段代码,它基本上是一个文本框和提交按钮,用户将在文本框中编写一个 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。
如何获取输入来执行它并将其视为代码?这甚至是正确的方法吗?
【问题讨论】:
-
使用函数
exec(YOUR_TEXT_CODE_HERE)来执行你获得的文本作为代码。更多信息请参考this -
@AST python将如何执行SQL代码?
-
@Cloud Cool 好吧,我同意你的看法,但我假设他们会将其添加到包含其余代码的更大字符串中,OP 询问“我如何获取输入来执行它并把它当作密码?”他们没有告诉会直接执行它。
-
OP应该做的是
import sqlite并用它来创建一个游标然后为你执行语句。