日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 运维知识 > 数据库 >内容正文

数据库

python mysql数据库操作grid控件_Python学习笔记_02:使用Tkinter连接MySQL数据库实现登陆注册功能...

發(fā)布時(shí)間:2024/4/19 数据库 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python mysql数据库操作grid控件_Python学习笔记_02:使用Tkinter连接MySQL数据库实现登陆注册功能... 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

1 環(huán)境搭建

1.1?Python安裝

本文具體實(shí)現(xiàn)部分Python環(huán)境:Python2.7.14,64位版本

附:配置PythonIDE,推薦PyCharm(具體IDE界面見(jiàn)下圖),下載點(diǎn)擊運(yùn)行即可使用

1.2 MySQL環(huán)境搭建

本文具體實(shí)現(xiàn)部分MySQL環(huán)境:MySQL5.7.13,64位版本

推薦一款操作MySQL很好用的IDE:Navicat,鏈接:http://pan.baidu.com/s/1nvFrKCT密碼:tzr3(PS:可破解哦)

1.3安裝MySQLdb

MySQLdb 是用于Python鏈接Mysql數(shù)據(jù)庫(kù)的接口,它實(shí)現(xiàn)了 Python 數(shù)據(jù)庫(kù) API 規(guī)范 V2.0,基于 MySQL C API 上建立的。如果自己下載安裝的Python版本自帶MySQLdb模塊,則不需要重新配置安裝。

此處要注意自己安裝的Python和MySQL版本是64位還是32位,否則在進(jìn)行安裝MySQLdb時(shí)會(huì)報(bào)錯(cuò)。

此處分享一個(gè)?MySQL-python-1.2.5.win-amd64-py2.7.exe版本(PS:目前最新哦,免費(fèi)提供,樓主自己是在CSDN上花了四個(gè)下載幣弄來(lái)的),鏈接:http://pan.baidu.com/s/1nuDF6lj 密碼:9xyb

2 具體實(shí)現(xiàn)

2.1 登陸界面

PS:界面很丑,不過(guò)主要為了熟悉Python基礎(chǔ)語(yǔ)法,以及如何操作MySQL數(shù)據(jù)庫(kù),有興趣同學(xué)可以自己查詢相關(guān)組件屬性,可以對(duì)界面進(jìn)行美化。

使用Navicat查詢book數(shù)據(jù)庫(kù)中user表具體數(shù)據(jù)信息:

此處實(shí)現(xiàn)功能:

(1)點(diǎn)擊登陸,如果輸入用戶名和密碼與后臺(tái)mysql數(shù)據(jù)庫(kù)中查詢數(shù)據(jù)一致,則跳出提示框驗(yàn)證成功;否則提示用戶名或密碼錯(cuò)誤,驗(yàn)證失敗。

(2)點(diǎn)擊注冊(cè),跳轉(zhuǎn)到注冊(cè)界面,隱藏登陸界面。

(3)記住用戶名和密碼選擇框是為了顯示設(shè)計(jì)的登陸界面好看一點(diǎn),未實(shí)現(xiàn)具體功能。

2.2 注冊(cè)界面

此處實(shí)現(xiàn)功能:

(1)用戶輸入注冊(cè)用戶名、注冊(cè)密碼,點(diǎn)擊確定注冊(cè)按鈕后,在IDE輸出框會(huì)打印數(shù)據(jù)插入成功提示,否則會(huì)打印數(shù)據(jù)插入失敗提示。

(2)用戶點(diǎn)擊返回按鈕,此時(shí)會(huì)重新啟動(dòng)一個(gè)登陸界面,供剛才注冊(cè)賬號(hào)和密碼進(jìn)行登陸驗(yàn)證。

2.3 具體實(shí)現(xiàn)部分代碼

登陸界面login.py

#-*- coding: UTF-8 -*-

importMySQLdbfrom Tkinter import *

from register import *

from tkFont importFontfrom tkMessageBox import *

try:from ttk importEntry, ButtonexceptImportError:pass

classLogin(object):def __init__(self):

self.root=Tk()

self.root.title(u‘登錄‘)

self.root.resizable(False, False)

self.root.geometry(‘+450+250‘)

self.sysfont= Font(self.root, size=15)

self.lb_user= Label(self.root, text=u‘用戶名:‘,width = 20,height = 10,font=("黑體", 15, "bold"))

self.lb_passwd1= Label(self.root, text=u‘‘)

self.lb_passwd= Label(self.root, text=u‘密碼:‘,width = 20,height = 5,font=("黑體", 15, "bold"))

self.lb_user.grid(row=0, column=0, sticky=W)

self.lb_passwd1.grid(row=1, column=0, sticky=W)

self.lb_passwd.grid(row=2, column=0, sticky=W)

self.en_user= Entry(self.root, font=self.sysfont, width=24)

self.en_passwd= Entry(self.root, font=self.sysfont, width=24)

self.en_user.grid(row=0, column=1, columnspan=1)

self.en_passwd.grid(row=2, column=1, columnspan=1)

self.en_user.insert(0, u‘請(qǐng)輸入用戶名‘)

self.en_passwd.insert(0, u‘請(qǐng)輸入密碼‘)

self.en_user.config(validate=‘focusin‘,

validatecommand=lambda: self.validate_func(‘self.en_user‘),

invalidcommand=lambda: self.invalid_func(‘self.en_user‘))

self.en_passwd.config(validate=‘focusin‘,

validatecommand=lambda: self.validate_func(‘self.en_passwd‘),

invalidcommand=lambda: self.invalid_func(‘self.en_passwd‘))

self.var=IntVar()

self.ckb= Checkbutton(self.root, text=u‘記住用戶名和密碼‘, underline=0,

variable=self.var,font=(15))

self.ckb.grid(row=3, column=0)

self.bt_print= Button(self.root, text=u‘登陸‘)

self.bt_print.grid(row=3, column=1, sticky=E, pady=50,padx = 10)

self.bt_print.config(command=self.print_info)

self.bt_register= Button(self.root, text=u‘注冊(cè)‘)

self.bt_register.grid(row=3, column=2, sticky=E, pady=50, padx=50)

self.bt_register.config(command=self.register_info)#self.root.bind(‘‘, self.enter_print)

self.root.mainloop()defvalidate_func(self, en):return False if eval(en).get().strip() != ‘‘ elseTruedefinvalid_func(self, en):

value=eval(en).get().strip()if value == u‘輸入用戶名‘ or value == u‘輸入密碼‘:

eval(en).delete(0, END)if en == ‘self.en_passwd‘:

eval(en).config(show=‘*‘)defprint_info(self):

en1_value=self.en_user.get().strip()

en2_value=self.en_passwd.get().strip()

txt= u‘‘‘用戶名: %s \n密碼 : %s‘‘‘ %(self.en_user.get(), self.en_passwd.get())if en1_value == ‘‘ or en1_value == u‘輸入用戶名‘:

showwarning(u‘無(wú)用戶名‘, u‘請(qǐng)輸入用戶名‘)elif en2_value == ‘‘ or en2_value == u‘輸入密碼‘:

showwarning(u‘無(wú)密碼‘, u‘請(qǐng)輸入密碼‘)else:

a=0#打開(kāi)數(shù)據(jù)庫(kù)連接

db = MySQLdb.connect("localhost", "root", "root", "book")#使用cursor()方法獲取操作游標(biāo)

cursor =db.cursor()#SQL 查詢語(yǔ)句

sql = "select * from user"

try:#執(zhí)行SQL語(yǔ)句

cursor.execute(sql)#獲取所有記錄列表

results =cursor.fetchall()for row inresults:

id=row[0]

name= row[1]

pwd= row[2]if name == en1_value and pwd ==en2_value:

a= 1

print "數(shù)據(jù)庫(kù)連接及驗(yàn)證成功!!!"showinfo(‘登陸成功!!!‘, txt)## 打印結(jié)果

#print "id=%d,name=%s,pwd=%s" % \

#(id, name, pwd)

except:print "Error: unable to fecth data"

#關(guān)閉數(shù)據(jù)庫(kù)連接

db.close()if(a ==0):

showinfo(‘用戶名或密碼錯(cuò)誤!!!‘, txt)defregister_info(self):

self.rootR=Tk()

loginPage(self.rootR)

self.root.withdraw()defenter_print(self, event):

self.print_info()if __name__ == "__main__":

Login()

注冊(cè)界面register.py

#coding=utf-8

importMySQLdbfrom login import *

from Tkinter import *

importstringclassloginPage(object):def __init__(self, master, info=‘歡迎您進(jìn)入注冊(cè)頁(yè)面‘):

self.master=master

self.mainlabel= Label(master, text=info, justify=CENTER)

self.mainlabel.grid(row=0, columnspan=3)

self.user= Label(master, text=‘注冊(cè)用戶名:‘, borderwidth=3)

self.user.grid(row=1, sticky=W)

self.pwd= Label(master, text=‘注冊(cè)密碼:‘, borderwidth=3)

self.pwd.grid(row=2, sticky=W)

self.userEntry=Entry(master)

self.userEntry.grid(row=1, column=1, columnspan=3)

self.userEntry.focus_set()

self.pwdEntry= Entry(master, show=‘*‘)

self.pwdEntry.grid(row=2, column=1, columnspan=3)

self.loginButton= Button(master, text=‘確定注冊(cè)‘, borderwidth=2, command=self.login)

self.loginButton.grid(row=3, column=1)

self.clearButton= Button(master, text=‘返回‘, borderwidth=2, command=self.clear)

self.clearButton.grid(row=3, column=2)deflogin(self):

self.username=self.userEntry.get().strip()

self.passwd=self.pwdEntry.get().strip()#打開(kāi)數(shù)據(jù)庫(kù)連接

db = MySQLdb.connect("localhost", "root", "root", "book")#使用cursor()方法獲取操作游標(biāo)

cursor =db.cursor()#SQL 插入語(yǔ)句

sql = "INSERT INTO user(name, pwd) VALUES (‘%s‘, ‘%s‘)" %(self.username, self.passwd)try:#執(zhí)行sql語(yǔ)句

cursor.execute(sql)print "數(shù)據(jù)插入成功!!!"

#提交到數(shù)據(jù)庫(kù)執(zhí)行

db.commit()except:print "數(shù)據(jù)插入失敗!!!"

#Rollback in case there is any error

db.rollback()#關(guān)閉數(shù)據(jù)庫(kù)連接

db.close()defclear(self):

self.userEntry.delete(0, END)

self.pwdEntry.delete(0, END)

Login()if __name__ == ‘__main__‘:

root=Tk()

root.title(‘注冊(cè)‘)

myLogin=loginPage(root)#root.wait_window(myLogin.mySendMail.sendPage)

mainloop()

參考資料:

原文:http://www.cnblogs.com/liuzhen1995/p/7765795.html

總結(jié)

以上是生活随笔為你收集整理的python mysql数据库操作grid控件_Python学习笔记_02:使用Tkinter连接MySQL数据库实现登陆注册功能...的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 久操福利视频 | 精品人妻码一区二区三区红楼视频 | 欧美日本国产在线 | 午夜性色福利影院 | 国产精品免费看久久久无码 | 国产一区二区三区四 | 超碰人人人人人 | 久久久久久久久久久国产 | 国产高清一区二区三区 | 亚洲AV乱码国产精品观看麻豆 | 精品一区二区三区无码按摩 | 黄色欧美在线观看 | 人人射人人插 | 亚洲福利在线观看 | 日韩成人一区二区 | 美女扒开尿口让男人捅爽 | 国产精品丝袜黑色高跟鞋 | 日本天堂在线观看 | 日本高清有码 | 精品欧美一区二区三区久久久 | 打屁股调教视频 | 亚洲欧美日韩精品久久亚洲区 | 亚洲五十路 | 亚洲乱码国产乱码精品精软件 | 91精品在线看 | 先锋影音av在线资源 | 狠狠操综合网 | 天天干夜夜骑 | 日韩欧美成人免费视频 | 又大又长粗又爽又黄少妇视频 | 国产又粗又猛又爽又黄的视频小说 | 日剧网| 非洲一级黄色片 | 亚洲成人少妇 | 精品女同一区二区 | 日韩国产一区二区 | 亚洲天堂偷拍 | 欧洲一区二区视频 | 中文字幕一区二区三区精彩视频 | 激情五月婷婷在线 | 欧美区一区二区三 | 黄色av地址 | 免费成人深夜夜行p站 | 轻点好疼好大好爽视频 | www污网站| 国产精品资源站 | 国产高潮视频在线观看 | 岛国av大片| 伊人网av在线 | 极品久久久久久 | 日韩动漫av | 欧美日日操 | 老妇荒淫牲艳史 | 国产丝袜第一页 | 一级一片免费看 | 国产白浆一区二区 | sao虎视频在线精品永久 | 亚洲色图激情小说 | kk视频在线观看 | 亚洲高清网 | www.爱操 | 欧美夜夜| 欧美中文字幕在线视频 | 欧美三级a做爰在线观看 | 亚洲精品国产日韩 | 天天爽夜夜爽夜夜爽精品 | 欧美人妻一区二区 | 韩国三级中文字幕hd久久精品 | 日韩av一区二区在线播放 | 国产高清av在线 | 免费黄色小视频 | 久久com| 韩日黄色 | 超碰一区二区三区 | 欧美三级欧美成人高清 | 亚洲国产婷婷香蕉久久久久久99 | 97国产高清 | 97色干 | 成人资源站 | 午夜视频在线观看免费视频 | 情五月 | a级成人毛片 | 亚洲av永久无码精品放毛片 | 国产成人片 | 欧美在线小视频 | 国产我不卡 | 丰满人妻一区二区三区四区53 | 少妇色视频 | 一级视频免费观看 | 日韩美女视频一区 | 天堂网亚洲 | 色久综合网 | 青青草欧美 | 黄色免费一级视频 | 精品久久久中文字幕人妻 | 麻豆影视免费观看 | 欧美一区二区三区四 | 国产一级做a | 欧美日韩三 |