登录注册界面
sign.py
import tkinter as tk
import pymysql
from Second import allq
from tkinter import messagebox
# 创建数据库连接 1
db1 = pymysql.connect(
host='127.0.0.1', # 主机
port=3306, # mysql默认端口
user='root', # 用户名
password='123456', # 密码
database='medicine', # 要打开的那个数据库
charset='utf8' # 编码千万不要加- 如果写成了utf-8会直接报错
)
cd1 = db1.cursor()
# 实例化object,建立窗口window
window1 = tk.Tk()
# 给窗口的可视化起名字
window1.title('医药信息管理系统')
# 设定窗口的大小(长 * 宽)
window1.geometry('500x400') # 这里的乘是小x
# 在图形界面上创建 500 * 300 大小的画布并放置各种元素
canvas=tk.Canvas(window1,bg='green',height=280,width=500)
canvas.place(x=0,y=0)
image_file=tk.PhotoImage(file='C:/Users/MI/Desktop/med.png')
image=canvas.create_image(260,140,image=image_file)
tk.Label(window1, text='用户名:', fg='black',font=('Microsoft YaHei', 20)).place(x=10,y=285)
u1 = tk.Entry(window1, show=None, font=('NSimSun', 19),width=10)
u1.place(x=110,y=290)
tk.Label(window1, text='密码:', fg='black',font=('Microsoft YaHei', 20)).place(x=260,y=285)
u2 = tk.Entry(window1, show='*', font=('NSimSun', 19),width=10)
u2.place(x=335,y=290)
# 注册
def zhuce():
username = u1.get()
while username:
cd1.execute("select user_name from user where user_name='%s'" % username)
break
else:
messagebox.showinfo(title='提示', message='用户名不能为空!')
result = cd1.fetchone()
if result:
messagebox.showinfo(title='提示', message='该用户已注册!')
elif not result:
userpwd = u2.get()
while userpwd:
userpwd = u2.get()
cd1.execute("insert into user(user_name,user_pwd)values ('%s','%s')" % (username, userpwd))
messagebox.showinfo(title='提示', message='注册成功!')
break
else:
messagebox.showinfo(title='提示', message='密码不能为空!')
db1.commit()
zcaj = tk.Button(window1,text="注册", bg='#5497DD', command=zhuce, width=8, height=1)
zcaj.place(x=330, y=340)
# 登录
def denglu():
username = u1.get()
userpwd=u2.get()
cd1.execute("select user_name from user where user_name='%s'" % username)
result = cd1.fetchone()
if result:
cd1.execute("select user_pwd from user where user_name='%s'" % username)
# print(pwd)
# print(cd1.fetchone())
# cd1.fetchone()
pwd1=cd1.fetchone()
# print(pwd1)
if pwd1[0]==userpwd:
messagebox.showinfo(title='提示', message='登陆成功!')
window1.destroy()
allq.main()
else:
messagebox.showerror(title='提示', message='密码错误,检查后输入')
else:
messagebox.showinfo(title='提示', message='请先注册!')
dlaj = tk.Button(window1,text="登录", bg='#5497DD', command=denglu, width=8, height=1)
dlaj.place(x=100, y=340)
window1.mainloop()
# 关闭数据库连接
cd1.close()
db1.close()
操作界面
allq.py
import pymysql
import tkinter as tk # 使用Tkinter前需要先导入
from tkinter import messagebox
from tkinter import Listbox
from tkinter import *
# 创建数据库连接 1
db = pymysql.connect(
host='127.0.0.1', # 主机
port=3306, # mysql默认端口
user='root', # 用户名
password='123456', # 密码
database='medicine', # 要打开的那个数据库
charset='utf8' # 编码千万不要加- 如果写成了utf-8会直接报错
)
cd = db.cursor()
def submit1():
drugsno = e1.get()
while drugsno:
cd.execute("select drug_sno from drug where drug_sno='%s'" % drugsno)
break
else:
messagebox.showinfo(title='提示', message='药品编号不能为空!')
# cd.execute("select drug_sno from drug where drug_sno='%s'" % drugsno)
result = cd.fetchone()
if result:
messagebox.showinfo(title='提示', message='药品编号已存在,可以直接修改!')
elif not result:
messagebox.showinfo(title="", message="提交")
drugtype = e2.get()
while drugtype:
drugeffect = e3.get()
break
else:
messagebox.showinfo(title='提示',message='药品类型不能为空!')
while drugeffect:
drugstock = e4.get()
break
else:
messagebox.showinfo(title='提示', message='功能主治不能为空!')
while drugstock:
cd.execute("insert into drug(drug_sno,drug_type,drug_effect,drug_stock)values ('%s','%s','%s','%s')" % (
drugsno, drugtype, drugeffect, drugstock))
messagebox.showinfo(title='提示', message='药品成功录入!')
break
else:
messagebox.showinfo(title='提示',message='药品库存最小为0!')
db.commit()
def submit2():
drugsno = e1.get()
cd.execute("select drug_sno from drug where drug_sno='%s'" % drugsno)
result = cd.fetchone()
messagebox.showinfo(title="", message="提交")
if result:
cd.execute("delete from drug where drug_sno='%s'" % drugsno)
messagebox.showinfo(title='提示', message='已经删除!')
else:
messagebox.showerror(title='提示', message='该药品不存在!')
db.commit()
def submit3():
drugsno = e1.get()
cd.execute("select drug_sno from drug where drug_sno='%s'" % drugsno)
result = cd.fetchone()
if result:
yplx = e2.get()
if yplx:
cd.execute("update drug set drug_type='%s' where drug_sno='%s'" % (yplx, drugsno))
ypgx = e3.get()
if ypgx:
cd.execute("update drug set drug_effect='%s' where drug_sno='%s'" % (ypgx, drugsno))
ypkc = e4.get()
if ypkc:
cd.execute("update drug set drug_stock='%s' where drug_sno='%s'" % (ypkc, drugsno))
messagebox.showinfo(title="", message="提交")
messagebox.showinfo(title='提示', message='修改完毕!')
else:
messagebox.showerror(title='提示', message='药品不存在,请重新输入')
db.commit()
def submit4():
tk.Label(window, text='药品信息', bg='#6AD1FE', fg='black', font=('MingLiU', 13)).place(x=280, y=225)
lb = Listbox(window, bg='#2FDCFE', width=20, height=5,font=('MingLiU', 20))
lb.place(x=175, y=248)
drugsno = e1.get()
cd.execute("select drug_sno,drug_type,drug_effect,drug_stock from drug where drug_sno='%s'" % drugsno)
result = cd.fetchone()
if result:
lb.insert(END,'药品编号:' + result[0])
lb.insert(END,'药品类型:' + result[1])
lb.insert(END,'功能主治:' + result[2])
lb.insert(END,'药品库存:' + result[3])
# for item in result:
# lb.insert(END,item)
# print('药品编号:', result[0])
# print('药品类型:', result[1])
# print('药品功效:', result[2])
# print('药品库存:', result[3])
else:
lb.insert(END,'没有该药品!')
# print('没有该药品!!')
def main():
global window,e1,e2,e3,e4
window = tk.Tk()
window.title('医药信息管理系统')
# 设定窗口的大小(长 * 宽)
window.geometry('680x500') # 这里的乘是小x
canvasa = tk.Canvas(window, bg='blue', height=500, width=700)
canvasa.place(x=0, y=0)
image1_file = tk.PhotoImage(file='C:/Users/MI/Desktop/all.png')
image1 = canvasa.create_image(260, 200, image=image1_file)
# 在图形界面上设定标签
# showinfo(title='提示',message='欢迎使用本系统')
l = tk.Label(window, text='hello!Welcome to use', bg='#7DC1F8', font=('Arial', 12), width=30, height=1)
# 说明: bg为背景,font为字体,width为长,height为高,这里的长和高是字符的长和高,比如height=2,就是标签有2个字符这么高
# 放置标签
l.place(x=215, y=2) # Label内容content区域放置位置,自动调节尺寸
tk.Label(window, text='药品编号:', bg='#A6CBF8', fg='black', font=('Microsoft YaHei', 20)).place(x=40, y=50)
e1 = tk.Entry(window, bg='#39CEF9', show=None, font=('NSimSun', 25), width=7)
e1.place(x=170, y=53)
tk.Label(window, text='药品类型:', bg='#65BBF6', fg='black', font=('Microsoft YaHei', 20)).place(x=340, y=50)
e2 = tk.Entry(window, bg='#39CEF9', show=None, font=('NSimSun', 25), width=7)
e2.place(x=470, y=53)
# tk.Label(window, text='(元/kg)', fg='black',font=('Microsoft JhengHei', 20)).place(x=555,y=50)
tk.Label(window, text='功能主治:', bg='#ADCCFB', fg='black', font=('Microsoft YaHei', 20)).place(x=40, y=100)
e3 = tk.Entry(window, bg='#39CEF9', show=None, font=('NSimSun', 25), width=7)
e3.place(x=170, y=103)
tk.Label(window, text='药品库存:', bg='#7ECCFD', fg='black', font=('Microsoft YaHei', 20)).place(x=340, y=100)
e4 = tk.Entry(window, bg='#39CEF9', show=None, font=('NSimSun', 25), width=7)
e4.place(x=470, y=103)
#
zjaj = tk.Button(window, text="增加", bg='#7AC1F7', command=submit1, width=10, height=2, )
zjaj.place(x=110, y=150)
scaj = tk.Button(window, text="删除", bg='#7AC1F7', command=submit2, width=10, height=2)
scaj.place(x=240, y=150)
xgaj = tk.Button(window, text="修改", bg='#7AC1F7', command=submit3, width=10, height=2)
xgaj.place(x=360, y=150)
czaj = tk.Button(window, text="查找", bg='#7AC1F7', command=submit4, width=10, height=2)
czaj.place(x=470, y=150)
window.mainloop()
# 注意,loop因为是循环的意思,window.mainloop就会让window不断的刷新,如果没有mainloop,就是一个静态的window,传入进去的值就不会有
# 循环,mainloop就相当于一个很大的while循环,有个while,每点击一次就会更新一次,所以我们必须要有循环
# 所有的窗口文件都必须有类似的mainloop函数,mainloop是窗口文件的关键的关键。
# 关闭数据库连接
cd.close()
db.close()
# main()
数据库的表
因篇幅问题不能全部显示,请点此查看更多更全内容
怀疑对方AI换脸可以让对方摁鼻子 真人摁下去鼻子会变形
女子野生动物园下车狼悄悄靠近 后车司机按喇叭提醒
睡前玩8分钟手机身体兴奋1小时 还可能让你“变丑”
惊蛰为啥吃梨?倒春寒来不来就看惊蛰
男子高速犯困开智能驾驶出事故 60万刚买的奔驰严重损毁