![](/img/trans.png)
[英]operational error (syntax) in a sqlite3 database using a tkinter gui loop
[英]Linked Tkinter button to Sqlite3 database using classes
我正在嘗試使用支持 sqlite3 數據庫的 Tkinter GUI。 我想用我的 Tkinter window 上的按鈕控制數據庫。我也在弄清楚如何在使用類時改進我的代碼。 但是,如果我按下“創建數據庫”按鈕,則不會將任何表插入到數據庫中。
按照我的代碼:
import sqlite3
import datetime
import os.path
import tkinter as tk
from tkinter import *
from tkinter import messagebox
from tkinter.ttk import Treeview, Separator
class MainApplication():
def __init__(self, master):
self.master = master
self.frame = tk.Frame(self.master)
self.master.title('Titanic DB')
self.master.geometry('850x600')
self.master.resizable(False, False)
self.search_frame = tk.Frame(self.master).grid(row=0, column=0)
self.label_search_heading = tk.Label(self.search_frame, text='DATABASE |', font=('bold', 14), pady=10).grid(row=0, column=0, sticky=W)
self.button_create_database = tk.Button(self.search_frame, text='create database', command=self.ActionButtons, font=('bold', 14), pady=5, padx=50).grid(row=20, column=0, sticky=W)
def ActionButtons(self):
self.db = Database()
self.createDB = self.db.CreateDatabase
class Database():
DATABASE = "TitanicPassengers.db"
def __init__(self):
self.connection = sqlite3.connect(Database.DATABASE)
self.cursor = self.connection.cursor()
def CreateDatabase(self):
self.connection = sqlite3.connect(Database.DATABASE)
self.cursor = self.connection.cursor()
self.execute("CREATE TABLE IF NOT EXISTS Passengers(Survived INTEGER, " \
"PClass INTEGER, " \
"Name TEXT, " \
"Sex TEXT, " \
"Age INTEGER, " \
"SiblingsSpousesAbord INTEGER, " \
"ParentsChildrenAbord INTEGER, " \
"Fare REAL ) "
)
self.connection.commit()
self.connection.close()
def main():
root = tk.Tk()
app = MainApplication(root)
root.mainloop()
if __name__ == '__main__':
main()
如果有人能給我提示,我會很高興,我做錯了什么。 非常感謝所有其他如何更好地組織我的代碼的技巧。 謝謝!
嗯,我自己想通了。
我變了
self.createDB = self.db.CreateDatabase
至
self.db.CreateDatabase()
沒關系,所有關於更好代碼結構的提示都是有幫助的。
謝謝!
我相信
self.execute("如果不存在則創建表...等等
應該
self.cursor.execute..
是不是?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.