在csdn上写博客也有一小段时间了,虽然没有多少流量,但是还是很开心的。因为在csdn上写属于自己的博客不仅能收获到一些志同道合的朋友,还能记录自己的成长,所以和乐而不为呢?
本人接触编程这行差几天就一年了,在这快一年的时间里经历很多,从最开始的基础c语言到python再到html,js,数据库等,它们都见证了我的成长,虽然我现在学的都只是皮毛,但是路还很长,任重而道远!这次开学我就不在是哪个大一的新生了,我将带着个这颗坚韧的心,认真走完大二,甚至大学和自己的人生,也希望能给大家带来帮助和遇见更多的志同道合的小伙伴啦!
说的有点多了都快和今天的主题没关系了嘿嘿,等有机会再给大家讲大道理吧!
今天给大家带来一个GUI界面的登录注册系统。这个是由python的tkinter所开发出来的(不过tk都是上世纪产物了,大家也可以去学习qt)这个登录注册系统就和我们一般用的软件的登录注册一样,登录看数据库有没有你的账号信息,没有的话注册一个就是添新的信息在数据库里面。
我们直接上成果图!!!
?这个是没有注册的时候,会有提示账号密码错误。
?
?这个就是注册成功并且把信息传到数据库中。
?这就是成功后的界面了。
话不多说直接上代码!!!
from tkinter import *
from tkinter.messagebox import *
import pymysql
window = Tk()
window.geometry('500x300')
window.title('登录账号!')
list1 = []
list2 =[]
#创建标签
Label(window,text = '账号:').place(relx =0, rely = 0.05,relwidth = 0.3)
Label(window,text = '密码:').place(relx = 0, rely = 0.15,relwidth =0.3)
#鼠标定位
zh = StringVar()
mm = StringVar()
#输入框
Entry(window,textvariable =zh, show = None).place(relx =0.3,rely = 0.05,relwidth = 0.3)
Entry(window,textvariable =mm,show ='*').place(relx = 0.3,rely = 0.15 ,relwidth = 0.3)
def connet():
conn = pymysql.connect(host='localhost', user="root", passwd="",database='')
return conn
#数据查询
def get_all():
conn = connet()
cur = conn.cursor()
sql ='select * from dl ;'
cur.execute(sql)
f = cur.fetchall()
for i in f:
list1.append(i[0])
list2.append(i[1])
#登陆函数
def dl():
get_all()
if int(zh.get()) in list1 and mm.get() in list2:
showinfo('提示!','登录成功!')
else:
showerror('错误!','账号或密码错误!')
def create():
root = Toplevel()
root.geometry('500x300')
root.title('注册')
def zc():
z = zh1.get()
m = mm1.get()
if zh1.get() =='' or mm1.get() =='':
showerror('提示','账号密码不能为空!')
else:
connection = connet()
cur = connection.cursor()
sql = 'insert into dl(账号,密码) values("%s","%s")'
try:
cur.execute(sql%(int(z),m))
connection.commit()
except Exception as e:
connection.rollback()
raise e
showinfo('注册成功!','请跳转页面!')
Label(root, text='账号:').place(relx=0, rely=0.05, relwidth=0.3)
Label(root, text='密码:').place(relx=0, rely=0.15, relwidth=0.3)
# 鼠标定位
zh1 = StringVar()
mm1 = StringVar()
# 输入框
Entry(root, textvariable=zh1, show=None).place(relx=0.3, rely=0.05, relwidth=0.3)
Entry(root, textvariable=mm1, show='*').place(relx=0.3, rely=0.15, relwidth=0.3)
Button(root, text='注册', command=zc).place(relx=0.2, rely=0.3, relwidth=0.5)
Button(root,text = '退出', command=root.quit).place(relx=0.2, rely=0.4, relwidth=0.5)
root.mainloop()
Button(window,text = '登录', command = dl).place(relx = 0.2 ,rely = 0.3, relwidth = 0.5)
Button(window,text = '注册',command = create).place(relx =0.2,rely =0.4,relwidth = 0.5)
window.mainloop()
注意!!!!
有时候代码报错是你数据库表设计出问题的!!!
一定要注意你设计的表格类型!!!!
今天的分享就到这,瑞四百!!!
|