最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python3 Tkinkter + SQLite實現(xiàn)登錄和注冊界面

 更新時間:2019年11月19日 11:51:24   作者:廣州-輝Python開發(fā)  
這篇文章主要為大家詳細介紹了Python3 Tkinkter + SQLite實現(xiàn)登錄和注冊界面,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下

本文實例為大家分享了Python3 Tkinkter + SQLite 實現(xiàn)登錄和注冊界面,供大家參考,具體內(nèi)容如下

Ubuntu14 + Python3.4 + Pycharm2018

一、設計數(shù)據(jù)庫

數(shù)據(jù)庫內(nèi)容(login.db):用戶名,密碼,郵箱,密碼錯誤次數(shù)(達到三次時鎖定)

create table loginuser (
 username varchar(30) NOT NULL PRIMARY KEY ,
 password varchar(16) NOT NULL ,
 email varchar NOT NULL ,
 loginerror int
);

二、登錄界面Tkinter

login.py

1.登錄界面代碼

2.注冊界面代碼

from tkinter import *
import sqlite3
import tkinter.messagebox as messagebox
 
 
class LoginPage:
  """登錄界面"""
  def __init__(self, master):
    self.root = master
    self.root.geometry('400x200+600+400')
    self.root.title('項目資源管理平臺Alpha0.1')
    self.conn = sqlite3.connect('data/login.db')
    self.username = StringVar()
    self.password = StringVar()
    self.page = Frame(self.root)
    self.creatapage()
 
  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).grid(row=3, stick=W, pady=10)
    Button(self.page, text='注冊賬號', command=self.register).grid(row=3, stick=E, column=1)
    self.page.pack()
 
  def login(self):
    """登錄功能"""
    curs = self.conn.cursor()
    query = "select username, password, loginerror from loginuser where username='%s'" % self.username.get()
    curs.execute(query) # 返回一個迭代器
    c = curs.fetchall() # 接收全部信息
    if len(c) == 0:
      messagebox.showerror('登錄失敗', '賬戶不存在')
    else:
      us, pw, lerror = c[0]
      if lerror >= 3:
        messagebox.showwarning('登錄失敗', '賬戶已被鎖定')
      elif us == self.username.get() and pw == self.password.get():
        self.conn.close()
        messagebox.showinfo('登錄成功', '歡迎:%s' % us)
      else:
        messagebox.showwarning('登錄失敗', '密碼錯誤')
 
  def register(self):
    """注冊功能跳轉"""
    self.conn.close()
    self.page.destroy()
    RegisterPage(self.root)
 
 
class RegisterPage:
  """注冊界面"""
  def __init__(self, master=None):
    self.root = master
    self.root.title('賬號注冊')
    self.root.geometry('400x250')
    self.conn = sqlite3.connect('data/login.db')
    self.username = StringVar()
    self.password0 = StringVar() # 第一次輸入密碼
    self.password1 = StringVar() # 第二次輸入密碼
    self.email = StringVar()
    self.page = Frame(self.root)
    self.createpage()
 
  def createpage(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.password0, show='*').grid(row=2, column=1, stick=E)
    Label(self.page, text="再次輸入:").grid(row=3, stick=W, pady=10)
    Entry(self.page, textvariable=self.password1, show='*').grid(row=3, column=1, stick=E)
    Label(self.page, text="Email*:").grid(row=4, stick=W, pady=10)
    Entry(self.page, textvariable=self.email).grid(row=4, column=1, stick=E)
    Button(self.page, text="返回", command=self.repage).grid(row=5, stick=W, pady=10)
    Button(self.page, text="注冊", command=self.register).grid(row=5, column=1, stick=E)
    self.page.pack()
 
  def repage(self):
    """返回登錄界面"""
    self.page.destroy()
    self.conn.close()
    LoginPage(self.root)
 
  def register(self):
    """注冊"""
    if self.password0.get() != self.password1.get():
      messagebox.showwarning('錯誤', '密碼核對錯誤')
    elif len(self.username.get()) == 0 or len(self.password0.get()) == 0 or len(self.email.get()) == 0:
      messagebox.showerror("錯誤", "不能為空")
    else:
      curs = self.conn.cursor()
      query = 'insert into loginuser values (?,?,?,?)'
      val = [self.username.get(), self.password0.get(), self.email.get(), 0]
      try:
        curs.execute(query, val)
        self.conn.commit()
        self.conn.close()
        messagebox.showinfo("成功", "注冊成功,按確定返回登錄界面")
        self.page.destroy()
        LoginPage(self.root)
      except sqlite3.IntegrityError:
        messagebox.showerror("注冊失敗", "該賬戶已存在")
 
 
if __name__ == '__main__':
  root = Tk()
  LoginPage(root)
  root.mainloop()

三、實現(xiàn)效果

1.登錄界面:

 

2.注冊界面:

 

以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關文章

  • Python光學仿真教程實現(xiàn)光線追蹤

    Python光學仿真教程實現(xiàn)光線追蹤

    傳統(tǒng)的高斯光學是建立在傍軸近似基礎之上的理想成像理論,這種處理以物像關系為核心,通過基點對光路的成像特性進行描述。然而,傍軸近似在一定程度上犧牲了精確性,從而使得需要一套像差理論作為補充
    2021-10-10
  • 使用Python實現(xiàn)網(wǎng)絡設備配置備份與恢復

    使用Python實現(xiàn)網(wǎng)絡設備配置備份與恢復

    網(wǎng)絡設備配置備份與恢復在網(wǎng)絡安全管理中起著至關重要的作用,本文為大家介紹了如何通過Python實現(xiàn)網(wǎng)絡設備配置備份與恢復,需要的可以參考下
    2025-03-03
  • python標識符的用法及注意事項

    python標識符的用法及注意事項

    在本篇文章里小編給大家整理了一篇關于python標識符的用法及注意事項相關內(nèi)容,有需要的朋友們可以學習下。
    2021-09-09
  • Biblibili視頻投稿接口分析并以Python實現(xiàn)自動投稿功能

    Biblibili視頻投稿接口分析并以Python實現(xiàn)自動投稿功能

    這篇文章主要介紹了Biblibili視頻投稿接口分析并以Python實現(xiàn)自動投稿功能,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-02-02
  • Python密碼學Caesar?Cipher凱撒密碼算法教程

    Python密碼學Caesar?Cipher凱撒密碼算法教程

    這篇文章主要為大家介紹了Python密碼學Caesar?Cipher凱撒密碼算法教程,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-05-05
  • python實現(xiàn)隨機梯度下降法

    python實現(xiàn)隨機梯度下降法

    這篇文章主要為大家詳細介紹了python實現(xiàn)隨機梯度下降法,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-08-08
  • python用WxPython庫實現(xiàn)無邊框窗體和透明窗體實現(xiàn)方法詳解

    python用WxPython庫實現(xiàn)無邊框窗體和透明窗體實現(xiàn)方法詳解

    這篇文章主要介紹了python用WxPython庫實現(xiàn)無邊框窗體和透明窗體實現(xiàn)方法詳解,需要的朋友可以參考下
    2020-02-02
  • Python爬蟲抓取指定網(wǎng)頁圖片代碼實例

    Python爬蟲抓取指定網(wǎng)頁圖片代碼實例

    這篇文章主要介紹了Python爬蟲抓取指定網(wǎng)頁圖片代碼實例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-07-07
  • Python爬蟲實現(xiàn)使用beautifulSoup4爬取名言網(wǎng)功能案例

    Python爬蟲實現(xiàn)使用beautifulSoup4爬取名言網(wǎng)功能案例

    這篇文章主要介紹了Python爬蟲實現(xiàn)使用beautifulSoup4爬取名言網(wǎng)功能,結合實例形式分析了Python基于beautifulSoup4模塊爬取名言網(wǎng)并存入MySQL數(shù)據(jù)庫相關操作技巧,需要的朋友可以參考下
    2019-09-09
  • python?如何獲取文件夾中的全部文件

    python?如何獲取文件夾中的全部文件

    在神經(jīng)網(wǎng)絡準備訓練集的時候,經(jīng)常需要從文件夾中讀取全部圖片。經(jīng)常遇到的有兩種方式,一種是os.listdir()另一種是glob,本文結合示例代碼對python獲取文件夾中全部文件講解的非常詳細,需要的朋友參考下吧
    2023-01-01

最新評論

石嘴山市| 青浦区| 常宁市| 山西省| 上杭县| 清丰县| 无棣县| 普兰县| 临汾市| 本溪| 济阳县| 沾化县| 黑山县| 静海县| 台中市| 桃园县| 电白县| 霍林郭勒市| 宜良县| 阳朔县| 双桥区| 淮安市| 永和县| 邵阳市| 苏尼特右旗| 天津市| 竹山县| 镇原县| 班戈县| 锦州市| 湖南省| 江西省| 元谋县| 呼伦贝尔市| 花莲县| 普兰县| 张家口市| 柘荣县| 叶城县| 河南省| 昆明市|