[英]Inserting user input data into sqlite3 in python
我无法使用 python 将数据插入 sqlite3 数据库...请查看我编写的代码并告诉我程序中的所有缺陷..我是编程初学者..
我收到错误
btn = Button(text="Save", on_press=self.add_question(qst.text, ans.text))
TypeError: add_question() takes 2 positional arguments but 3 were given
import sqlite3
from kivy.app import App
from kivy.uix.label import Label
from kivy.uix.button import Button
from kivy.uix.gridlayout import GridLayout
from kivy.uix.textinput import TextInput
class qbApp(App):
def build(self):
layout = GridLayout(cols=2)
lbl = Label(text="Question :")
qst = TextInput()
lbl1 = Label(text="Answer :")
ans = TextInput()
btn = Button(text="Save", on_press= add_question(qst.text, ans.text))
layout.add_widget(lbl)
layout.add_widget(qst)
layout.add_widget(lbl1)
layout.add_widget(ans)
layout.add_widget(btn)
return layout
def add_question(qst, ans):
conn = sqlite3.connect('KSFE.db')
c = conn.cursor()
sql = """INSERT INTO qb (question, answer)
VALUES (?,?);"""
c.execute(sql, (qst, ans))
print("Data added")
conn.commit()
conn.close()
if __name__ == '__main__':
qbApp().run()
您可能希望将self
传递给add_question
或将其声明为 static 方法:
# option 1
def add_question(self, qst, ans):
pass
# option 2:
@staticmethod
def add_question(qst, ans):
pass
此外,在您的代码片段中,您有一个小错误: on_press=self.add_question(qst.text, ans.text)
看一个例子
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.