python+tkinter实现学生管理系统


Posted in Python onAugust 20, 2019

本文实例为大家分享了python+tkinter实现学生管理系统的具体代码,供大家参考,具体内容如下 

python+tkinter实现学生管理系统

from tkinter import *
from tkinter.messagebox import *
import sqlite3
from tkinter import ttk
 
dbstr = "H:\mydb.db"
 
root = Tk()
root.geometry('700x1000')
root.title('学生管理系统')
 
Label(root, text="学号:").place(relx=0, rely=0.05, relwidth=0.1)
Label(root, text="姓名:").place(relx=0.5, rely=0.05, relwidth=0.1)
Label(root, text="电话:").place(relx=0, rely=0.1, relwidth=0.1)
Label(root, text="地址:").place(relx=0.5, rely=0.1, relwidth=0.1)
 
sid = StringVar()
name = StringVar()
phone = StringVar()
address = StringVar()
Entry(root, textvariable=sid).place(relx=0.1, rely=0.05, relwidth=0.37, height=25)
Entry(root, textvariable=name).place(relx=0.6, rely=0.05, relwidth=0.37, height=25)
 
Entry(root, textvariable=phone).place(relx=0.1, rely=0.1, relwidth=0.37, height=25)
Entry(root, textvariable=address).place(relx=0.6, rely=0.1, relwidth=0.37, height=25)
 
Label(root, text='学生信息管理', bg='white', fg='red', font=('宋体', 15)).pack(side=TOP, fill='x')
 
 
def showAllInfo():
 x = dataTreeview.get_children()
 for item in x:
  dataTreeview.delete(item)
 con = sqlite3.connect(dbstr)
 cur = con.cursor()
 cur.execute("select * from student")
 lst = cur.fetchall()
 for item in lst:
  dataTreeview.insert("", 1, text="line1", values=item)
 cur.close()
 con.close()
 
 
def appendInfo():
 if sid.get() == "":
  showerror(title='提示', message='输入不能为空')
 elif name.get() == "":
  showerror(title='提示', message='输入不能为空')
 elif phone.get() == "":
  showerror(title='提示', message='输入不能为空')
 elif address.get() == "":
  showerror(title='提示', message='输入不能为空')
 else:
  x = dataTreeview.get_children()
  for item in x:
   dataTreeview.delete(item)
  list1 = []
  list1.append(sid.get())
  list1.append(name.get())
  list1.append(phone.get())
  list1.append(address.get())
  con = sqlite3.connect(dbstr)
  cur = con.cursor()
  cur.execute("insert into student values(?,?,?,?)", tuple(list1))
  con.commit()
  cur.execute("select * from student")
  lst = cur.fetchall()
  for item in lst:
   dataTreeview.insert("", 1, text="line1", values=item)
  cur.close()
  con.close()
 
 
def deleteInfo():
 con = sqlite3.connect(dbstr)
 cur = con.cursor()
 cur.execute("select * from student")
 studentList = cur.fetchall()
 cur.close()
 con.close()
 print(studentList)
 
 num = sid.get()
 flag = 0
 if num.isnumeric() == False:
  showerror(title='提示', message='删除失败')
 for i in range(len(studentList)):
  for item in studentList[i]:
   if int(num) == item:
    flag = 1
    con = sqlite3.connect(dbstr)
    cur = con.cursor()
    cur.execute("delete from student where id = ?", (int(num),))
    con.commit()
    cur.close()
    con.close()
    break
 if flag == 1:
  showinfo(title='提示', message='删除成功!')
 else:
  showerror(title='提示', message='删除失败')
 
 x = dataTreeview.get_children()
 for item in x:
  dataTreeview.delete(item)
 
 con = sqlite3.connect(dbstr)
 cur = con.cursor()
 cur.execute("select * from student")
 lst = cur.fetchall()
 for item in lst:
  dataTreeview.insert("", 1, text="line1", values=item)
 cur.close()
 con.close()
 
 
Button(root, text="显示所有信息", command=showAllInfo).place(relx=0.2, rely=0.2, width=100)
Button(root, text="追加信息", command=appendInfo).place(relx=0.4, rely=0.2, width=100)
Button(root, text="删除信息", command=deleteInfo).place(relx=0.6, rely=0.2, width=100)
 
 
dataTreeview = ttk.Treeview(root, show='headings', column=('sid', 'name', 'phone', 'address'))
dataTreeview.column('sid', width=150, anchor="center")
dataTreeview.column('name', width=150, anchor="center")
dataTreeview.column('phone', width=150, anchor="center")
dataTreeview.column('address', width=150, anchor="center")
 
dataTreeview.heading('sid', text='学号')
dataTreeview.heading('name', text='名字')
dataTreeview.heading('phone', text='电话')
dataTreeview.heading('address', text='地址')
 
dataTreeview.place(rely=0.3, relwidth=0.97)

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
爬山算法简介和Python实现实例
Apr 26 Python
构建Python包的五个简单准则简介
Jun 15 Python
python实现发送邮件及附件功能
Mar 02 Python
详解PyCharm配置Anaconda的艰难心路历程
Aug 13 Python
Python正则表达式和元字符详解
Nov 29 Python
python3.6实现学生信息管理系统
Feb 21 Python
Python实现 PS 图像调整中的亮度调整
Jun 28 Python
python实现的生成word文档功能示例
Aug 23 Python
tensorflow 获取checkpoint中的变量列表实例
Feb 11 Python
Pyqt5 关于流式布局和滚动条的综合使用示例代码
Mar 24 Python
Python Tornado核心及相关原理详解
Jun 24 Python
python3 删除所有自定义变量的操作
Apr 08 Python
Python对列表的操作知识点详解
Aug 20 #Python
python中的global关键字的使用方法
Aug 20 #Python
python并发编程 Process对象的其他属性方法join方法详解
Aug 20 #Python
浅谈pytorch grad_fn以及权重梯度不更新的问题
Aug 20 #Python
解决Pytorch 训练与测试时爆显存(out of memory)的问题
Aug 20 #Python
python中用logging实现日志滚动和过期日志删除功能
Aug 20 #Python
python3中替换python2中cmp函数的实现
Aug 20 #Python
You might like
PHP开发规范手册之PHP代码规范详解
2011/01/13 PHP
PHP永久登录、记住我功能实现方法和安全做法
2015/04/27 PHP
开启PHP的伪静态模式
2015/12/31 PHP
如何批量清理系统临时文件(语言:C#、 C/C++、 php 、python 、java )
2016/02/01 PHP
PHP从零开始打造自己的MVC框架之路由类实现方法分析
2019/06/03 PHP
js传值 判断
2006/10/26 Javascript
javascript使用activex控件的代码
2011/01/27 Javascript
JQuery中$之选择器用法介绍
2011/04/05 Javascript
JQuery实现表格中相同单元格合并示例代码
2013/06/26 Javascript
模拟一个类似百度google的模糊搜索下拉列表
2014/04/15 Javascript
JavaScript基本数据类型及值类型和引用类型
2015/08/25 Javascript
微信开发 消息推送实现代码
2016/10/21 Javascript
javascript操作cookie
2017/01/17 Javascript
微信小程序 MD5的方法详解及实例代码
2017/03/10 Javascript
js实现图片加载淡入淡出效果
2017/04/07 Javascript
Canvas放置反弹效果随机图形(实例)
2017/08/17 Javascript
react-router browserHistory刷新页面404问题解决方法
2017/12/29 Javascript
bootstrap table合并行数据并居中对齐效果
2018/10/17 Javascript
python执行子进程实现进程间通信的方法
2015/06/02 Python
Python网络爬虫之爬取微博热搜
2019/04/18 Python
python tools实现视频的每一帧提取并保存
2020/03/20 Python
Python列表list常用内建函数实例小结
2019/10/22 Python
Python numpy.zero() 初始化矩阵实例
2019/11/27 Python
Django 解决阿里云部署同步数据库报错的问题
2020/05/14 Python
Django CBV模型源码运行流程详解
2020/08/17 Python
Python中的特殊方法以及应用详解
2020/09/20 Python
Django配置跨域并开发测试接口
2020/11/04 Python
法律专业自我鉴定
2013/10/03 职场文书
财务主管自我鉴定
2014/01/17 职场文书
2014新年元旦活动策划方案
2014/02/18 职场文书
国际商务英语专业求职信
2014/07/08 职场文书
机械操作工岗位职责
2014/08/08 职场文书
学习普通话的体会
2014/11/07 职场文书
2016教师学习教育法心得体会
2016/01/19 职场文书
又涨知识了,自律到底多重要?
2019/06/27 职场文书
Nginx的gzip相关介绍
2022/05/11 Servers