天天看点

Python写登录注册系统+MySQL数据库

在csdn上写博客也有一小段时间了,虽然没有多少流量,但是还是很开心的。因为在csdn上写属于自己的博客不仅能收获到一些志同道合的朋友,还能记录自己的成长,所以和乐而不为呢?

本人接触编程这行差几天就一年了,在这快一年的时间里经历很多,从最开始的基础c语言到python再到html,js,数据库等,它们都见证了我的成长,虽然我现在学的都只是皮毛,但是路还很长,任重而道远!这次开学我就不在是哪个大一的新生了,我将带着个这颗坚韧的心,认真走完大二,甚至大学和自己的人生,也希望能给大家带来帮助和遇见更多的志同道合的小伙伴啦!

说的有点多了都快和今天的主题没关系了嘿嘿,等有机会再给大家讲大道理吧!

今天给大家带来一个GUI界面的登录注册系统。这个是由python的tkinter所开发出来的(不过tk都是上世纪产物了,大家也可以去学习qt)这个登录注册系统就和我们一般用的软件的登录注册一样,登录看数据库有没有你的账号信息,没有的话注册一个就是添新的信息在数据库里面。

我们直接上成果图!!!

Python写登录注册系统+MySQL数据库

 这个是没有注册的时候,会有提示账号密码错误。

Python写登录注册系统+MySQL数据库
Python写登录注册系统+MySQL数据库

 这个就是注册成功并且把信息传到数据库中。

Python写登录注册系统+MySQL数据库

 这就是成功后的界面了。

话不多说直接上代码!!!

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()
           

注意!!!!

有时候代码报错是你数据库表设计出问题的!!!

一定要注意你设计的表格类型!!!!

今天的分享就到这,瑞四百!!!