暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

python实现登录功能

ICTworker 2021-08-10
677

点击上方蓝字关注公众号


今天我们来看下如何实现登陆界面功能:


我们使用tkinter,sqlite3库来实现GUI登陆界面,sqlite3来存储账户密码数据。


使用到的库:


    from tkinter import *
    import sqlite3
    import tkinter.messagebox as messagebox



    先用tkinter构建登录界面:


      def __init__(self, master):
          #创建并连接数据库
          conn = sqlite3.connect('login.db')
      c =conn.cursor()
      try:
      c.execute("create table loginuser (username varchar(30) NOT NULL PRIMARY KEY ,password varchar(16) NOT NULL ,email varchar NOT NULL ,loginerror int)")
      except Exception as e:
      print("已经创建数据库")
      self.root = master
      self.root.geometry('400x200+600+400')
      self.root.title('恋爱笔记V1.5')
      self.conn = sqlite3.connect('login.db')
      self.username = StringVar()
      self.password = StringVar()
      self.page = Frame(self.root)
      self.creatapage()


      接下来看下createage函数

        def creatapage(self):
        """界面布局"""
        Label(self.page).grid(row=0)
        Label(self.page, text='用户名:').grid(row=1, stick=W, pady=10)
        Entry(self.page, textvariable=self.username).grid(row=1, column=1, stick=E)
        Label(self.page, text='密码:').grid(row=2, stick=W, pady=10)
        Entry(self.page, textvariable=self.password, show='*').grid(row=2, stick=E, column=1)
        Button(self.page, text='登录', command=self.login,bg="#0081FF").grid(row=3, stick=W, pady=10)
        self.page.pack()


        实现登录功能login函数:


          def login(self):
          """登录功能"""
          curs = self.conn.cursor()
          query = "select username, password from loginuser where username='%s'" % self.username.get()
          curs.execute(query) # 返回一个迭代器
          c = curs.fetchall() # 接收全部信息
          if len(c) == 0:
          messagebox.showerror('登录失败', '账户不存在')
          else:
          us, pw,= c[0]

          if us == self.username.get() and pw == self.password.get():
          self.conn.close()
          messagebox.showinfo('登录成功', '欢迎:%s' % us)
          self.root.destroy()
          else:
          messagebox.showwarning('登录失败', '密码错误')


          以上函数都放在一个class LoginPage上,最后我们调用这个类:


            if __name__ == '__main__':
            root=Tk()
            LoginPage(root)
            root.mainloop()


            以上代码没有预先设置个账户,所以会报账户不存在,结果如下图所示:



            为了演示效果,直接用数据库管理工具登录sqlit3数据库插入admin账户,我们再看下效果:




            登录界面到这里就做好了,大家学废了吗?



            扫描二维码更精彩



            点个在看你最好看



            文章转载自ICTworker,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

            评论