输出是 None、None、None Python 使用 sql lite

The Output is None, None, None Python using sql lite

大家好我需要帮助为什么我的输出结果在 print('bla bla') 行中是 none 所以从我的输出结果是 None, None, None 实际上是从 npm 、 nama 和 jurusan 插入的,但输出是 none ,有人能帮我解决吗谢谢

import sqlite3
import tkinter
from tkinter import *
from tkinter import ttk



def Daftar():
    window = Tk()
    window.title("Welcome to TutorialsPoint")
    window.geometry('400x400')
    window.configure(background = "grey");

    Lnpm = Label(window, text="Please Input Your npm: ").grid(row=0, column=0)
    Lnama = Label(window,text="Please Input Your nama: ").grid(row=1, column=0)
    Ljurusan = Label(window,text="Please Input Your jurusan: ").grid(row=2, column=0)

    npm = Entry(window).grid(row = 0,column = 1)
    nama = Entry(window).grid(row = 1,column = 1)
    jurusan = Entry(window).grid(row = 2,column = 1)
 def Clicked():

     print("First Name: %s\nLast Name: %s\nLast Name: %s" % (npm, nama, jurusan))

     connect = sqlite3.connect('Presensi.db')
     cur = connect.cursor()
     connect.execute("INSERT OR IGNORE INTO user(npm,nama,jurusan) values(?,?,?)", (str(npm),str(nama),str(jurusan)))
     connect.execute("INSERT OR IGNORE INTO presensi(nama) values(?)", (str(nama),))
     connect.commit()
     cur.close()

    btn = ttk.Button(window ,text="Register",command= Clicked()).grid(row=3,column=0)
    window.mainloop()

这里有两个大问题:

  • Entry 对象的 grid() 函数 returns None 这就是 npmnamajurusanNone。您需要做的是存储 Entry 对象,而不是 grid().
  • 返回的值
  • 您没有在 Entry 对象上调用 get() 来获取它们的输入值

您可以做的是创建一个 class 来存储 Entry 对象。 Button 对象的回调函数可以是 class.

的方法

我重新组织了您的代码来执行此操作:

from tkinter import Tk, Label, Button, Entry
import sqlite3

class Daftar:
    def __init__(self, master):
        self.window = master
        self.window.title("Welcome to TutorialsPoint")
        self.window.geometry('400x400')
        self.window.configure(background = "grey");

        self.Lnpm = Label(self.window, text="Please Input Your npm: ").grid(row=0, column=0)
        self.Lnama = Label(self.window,text="Please Input Your nama: ").grid(row=1, column=0)
        self.Ljurusan = Label(self.window,text="Please Input Your jurusan: ").grid(row=2, column=0)

        #Entry objects for later use
        self.npm = Entry(self.window)
        self.npm.grid(row = 0,column = 1)
        self.nama = Entry(self.window)
        self.nama.grid(row = 1,column = 1)
        self.jurusan = Entry(self.window)
        self.jurusan.grid(row = 2,column = 1)

        self.btn = Button(self.window ,text="Register",command = self.Clicked).grid(row=3,column=0)


    def Clicked(self):
        #Get the entry values
        npm = self.npm.get()
        nama = self.nama.get()
        jurusan = self.jurusan.get()
        print("First Name: %s\nLast Name: %s\nLast Name: %s" % (npm, nama, jurusan))

        connect = sqlite3.connect('Presensi.db')
        cur = connect.cursor()
        connect.execute("INSERT OR IGNORE INTO user(npm,nama,jurusan) values(?,?,?)", (npm,nama,jurusan))
        connect.execute("INSERT OR IGNORE INTO presensi(nama) values(?)", (nama,))
        connect.commit()
        cur.close()


root = Tk()
my_gui = Daftar(root)
root.mainloop()
window.mainloop()