GUI操作连接数据库,及打包时failded to excute script sign(未能执行脚本签名)包导入出现异常

登录注册界面
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()

数据库的表
在这里插入图片描述一个库
一个库两个表
在这里插入图片描述
在这里插入图片描述
问题出现在sign.py调用allq.py出现了failded to excute script sign(未能执行脚本签名)原本以为是pyinstaller版本问题,百度之后好像也不是这个,中间也找了很多原因,都没啥用,还好室友学习过python的模块,原来我调用的allq.py文件虽然在second目录下,但它在导入的时候并没有被python当做是模块,这个问题python菜鸟教程的模块中是这么说的:
Python中的包是一个分层次的文件目录结构,它定义了一个由模块及子包,和子包下的子包等组成的 Python 的应用环境。简单来说,包就是文件夹,但该文件夹下必须存在 init.py 文件, 该文件的内容可以为空。init.py 用于标识当前文件夹是一个包。所以说得在这个目录下添加__init__.py 文件,就算里面是空也得要这个文件。
最后问题完美解决。
在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值