'登录界面'
from PIL import Image,ImageTk
import tkinter as tk
import os
import tkinter.messagebox
# 打开指定的图片文件,缩放至指定尺寸
def get_image(filename,width,heigth):
im = Image.open(filename).resize((width,heigth))
return ImageTk.PhotoImage(im)
def login():
import pymysql
try: # 错误与异常,捕捉用户名错误异常
db = pymysql.connect( #连接 mysql数据库
host = "localhost",
user = "root",
passwd = "123456",
database = "dms",
charset='utf8'
)
user = entry_user_name.get() # 获取用户输入用户名与密码
password = entry_user_pd.get()
mycursor = db.cursor() # 获取游标
sql = 'select password from users where username=%s'
sql2 = ([user])
mycursor.execute(sql,sql2) # 执行查询语句,寻找该用户名对应的密码
myresult = mycursor.fetchall()
for row in myresult:
uid = row[4]
pd = row[5]
if pd == password and user == uid: # 检索出的结果与用户输入的密码一致 执行以下语句
tkinter.messagebox.INFO(title='你好',message='登录成功!')
break
if pd != password and user == uid:
tkinter.messagebox.ERROR(title='错误',message='密码错误!')
mycursor.close # 关闭游标
db.close() # 关闭数据库连接
except LookupError: # 用户名不存在的情况 执行一下语句
tkinter.messagebox.ERROR(title='错误',message='用户名错误!')
def aaa():
user = entry_user_name.get()
l = tk.Label(root,text=user)
l.pack(side='right')
# 创建根窗口,设定大小,标题
root = tk.Tk()
root.title('学生宿舍信息管理系统')
root.geometry('960x640')
root.maxsize(960,640)
root.minsize(960,640)
# 创建画布,放上要显示的图片,把画布添加在根窗口
canvas_root = tk.Canvas(root,width=960,height=640)
im_root = get_image('C:/Users/Administrator/Desktop/dmsGUI界面/summer.jpg',960,640)
canvas_root.create_image(0,0,anchor='nw',image=im_root)
canvas_root.pack(side='top')
# 登录界面frame
login_frame = tk.Frame(root,bg='#D3D3D3',height=100,width=325)
login_frame.place(x=10,y=630,anchor='sw')
# 标签
user_name = tk.Label(login_frame,bg='#FFFFFF',text='用户名:',font=('Airal',14),width=8,anchor='w')
user_name.place(x=5,y=12,anchor='nw')
user_pd = tk.Label(login_frame,bg='#FFFFFF',text='密码:',font=('Airal',14),width=8,anchor='w')
user_pd.place(x=5,y=62,anchor='nw')
# 输入框
v1 = tk.StringVar()
v2 = tk.StringVar()
entry_user_name = tk.Entry(login_frame,show=None,width=21,border=4,font=('Airal',14),textvariable=v1)
entry_user_name.place(x=100,y=10,anchor='nw')
entry_user_pd = tk.Entry(login_frame,show='*',width=21,border=4,font=('Airal',14),textvariable=v2)
entry_user_pd.place(x=100,y=60,anchor='nw')
# 按钮
login_botton = tk.Button(root,text='登录',font=('Airal',14),width=4,command=login)
login_botton.place(x=340,y=570,anchor='sw')
sign_up_botton = tk.Button(root,text='注册',font=('Airal',14),width=4,command=aaa)
sign_up_botton.place(x=340,y=625,anchor='sw')
root.mainloop()
报错:TypeError: 'str' object is not callable