简体   繁体   English

因此,基本上我需要将用户输入的数据放入Tkinter输入框中,并将其存储到我的sqlite3数据库中。 我正在使用Python 3.6

[英]So basically I need to take data a user inputs into a Tkinter entry box and store it into my sqlite3 database. I am using Python 3.6

conn = sqlite3.connect('School.db')
c = conn.cursor()
def account_Table(): #Creates the table for user accounts.
    c.execute('CREATE TABLE IF NOT EXISTS accounts(datestamp TEXT, u_id INT, username TEXT, password TEXT, classy TEXT, subject TEXT, forename TEXT, surname TEXT)')

def LoginFrame(Frame): #Builds the login/home screen for the program

        username_holder = Label(text="Username", bg="#b4c4a1", fg="#000000")
        password_holder = Label(text="Password", bg="#b4c4a1", fg="#000000")

        username = Entry()
        password = Entry(show="*")

        username_holder.grid(row=0, column=20)
        password_holder.grid(row=1, column=20)
        username.grid(row=0, column=40)
        password.grid(row=1, column=40)

        checkbox = Checkbutton(text="Keep me logged in", bg="#b4c4a1")
        checkbox.grid(row=3,column=40)

        logbtn = Button(text="Login", bg="#b4c4a1", command = Login_Check)
        logbtn.grid(row=3,column=30)

        sigup = Button(text="New User", bg="#b4c4a1", command = DataEntry)
        sigup.grid(row=3,column=20)

def DataEntry():
    datestamp = datetime.datetime.now() #Shows when the account was made
    u_id = (random.randrange(0,100)) #Gives the user a unique identifier, I don't really need it as the username is a pretty good identifier for this job.

    label_1 = Label(text='Enter A Username', bg="#b4c4a1")
    username = Entry()
    username.grid(row=4, column=40)
    label_1.grid(row=4, column=39)

    label_2 = Label(text='Enter A Password', bg="#b4c4a1")
    password = Entry(show='*')
    label_2.grid(row=5, column=39)
    password.grid(row=5, column=40)

    label_3 = Label(text='Enter Your Class', bg="#b4c4a1")
    classy = Entry()
    classy.grid(row=6, column=40)
    label_3.grid(row=6, column=39)

    subject = Entry()
    label_4=Label(text='Enter Your Subject', bg="#b4c4a1")
    subject.grid(row=7, column=40)
    label_4.grid(row=7, column=39)

    label_5=Label(text='Enter Your First Name', bg="#b4c4a1")
    forename = Entry()
    forename.grid(row=8, column=40)
    label_5.grid(row=8, column=39)

    surname = Entry()
    label_6 = Label(text='Enter Your Second Name', bg="#b4c4a1")
    surname.grid(row=9, column=40)
    label_6.grid(row=9, column=39)

All of the entries in 'DataEntry():' will go into the account table as a new record. “ DataEntry():”中的所有条目将作为新记录进入帐户表。

def Login_Check():
    print(".... Doing This Later")



#account_Table() 
root = Tk()
root.geometry('630x350')
root.config(bg="#b4c4a1")
root.title("Student Manager")
root.wm_iconbitmap('Icon.png')
LoginFrame(root)
Tk.mainloop

I don't know how to pass the entries from the Tkinter Login Box, as values to an SQL 'INSERT INTO' statement using sqlite3, It did work before using just the console as a method of inputting values, but that defeats the point of having a GUI for the user to use. 我不知道如何使用sqlite3将Tkinter登录框中的条目作为值传递给SQL'INSERT INTO'语句,它确实可以在仅将控制台用作输入值的方法之前工作,但这使具有供用户使用的GUI。

You can use the get() function of the Entry widgets to get what's typed in them and then use string-formatting to generate your SQL-command. 您可以使用Entry窗口小部件的get()函数获取在其中键入的内容,然后使用字符串格式生成SQL命令。

# Python 2.7

import sqlite3 as sql
import tkinter as tk
import datetime

connection = sql.connect('School.db')
cursor = connecton.cursor()
# Sidenote: your database does not have a PRIMARY KEY
# I made u_id the PRIMARY KEY
cursor.execute('CREATE TABLE IF NOT EXISTS accounts(datestamp TEXT, ' \ 
    'u_id INT PRIMARY KEY, username TEXT, password TEXT, classy TEXT, ' \
    'subject TEXT, forename TEXT, surname TEXT)')
insert_command = """INSERT OR IGNORE INTO accounts(datestamp, username, """ \
                 """password, classy, subject, forename, surname) VALUES(""" \   
                 """'%s', '%s', '%s', '%s', '%s', '%s', '%s');"""

root = tk.Tk()
username_entry = tk.Entry(root)
password_entry = tk.Entry(root)
classy_entry = tk.Entry(root)
subject_entry = tk.Entry(root)
forename_entry = tk.Entry(root)
surname_entry = tk.Entry(root)

def insert_user():
    datestamp = datetime.datetime.now()
    username = username_entry.get()
    password = password_entry.get()
    classy = classy_entry.get()
    subject = subject_entry.get()
    forename = forename_entry.get()
    surname = surname_entry.get()
    cursor.execute(insert_command % (datestamp, username, password,
                                     classy, subject, forename, surname))

insert_button = tk.Button(root, text="Insert my account", command=insert_user)


username_entry.pack()
password_entry.pack()
classy_entry.pack()
subject_entry.pack()
forename_entry.pack()
surname_entry.pack()
insert_button.pack()

root.mainloop()

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 使用 sqlite3 和 tkinter 我做了这个小型库存管理系统,问题是数据库的条目总是 null - Using sqlite3 and tkinter i have made this small inventory management system, the problem is the entry to the database is always null 应该使用什么 tkinter 小部件来显示和存储数据? 可以使用 label 吗? 我正在使用 sqlite3 作为数据库 - what tkinter widget should use to display and store data? Its okay to use a label? I'm using sqlite3 for database 问题 - Tkinter 需要检查输入框中的值是否已经在我的 sqlite 数据库表的特定列中 - Issue - Tkinter need to check if a value in entry box is already in a specific column in my sqlite database table python sqlite3 我有一个数据库如何获取主键输入然后获取数据库中另一个键的值 - python sqlite3 i have a database how to take prim key input and then take value of anther key in database 我需要计算用户在python中输入的数据 - I need to count data that the user inputs in python 如何使用tkinter条目而不是声明字符串或值从python中的SQLite数据库中删除? - How do I delete from a SQLite database in python using a tkinter entry instead of stating a string or value? 如何使用用户输入在 Python 中更新 SQLite3 数据库? - How do I update a SQLite3 database in Python with user input? 如何从 Tkinter 的输入框中检索数据? - How can I retrieve the data from my entry box in Tkinter? 如何使用从我的SQLite数据库中检索的数据填充tkinter下拉框? - How do I populate tkinter drop-down box with data retrieved from my SQLite database? 将tkinter条目数据提交到sqlite3 db - Submit tkinter entry data to sqlite3 db
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM