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 相关文章推荐
java直接调用python脚本的例子
Feb 16 Python
Python发送Email方法实例
Aug 21 Python
利用Hyperic调用Python实现进程守护
Jan 02 Python
多个应用共存的Django配置方法
May 30 Python
python操作redis方法总结
Jun 06 Python
Python实现快速傅里叶变换的方法(FFT)
Jul 21 Python
Python 获取div标签中的文字实例
Dec 20 Python
python字符串切割:str.split()与re.split()的对比分析
Jul 16 Python
Django结合ajax进行页面实时更新的例子
Aug 12 Python
使用opencv中匹配点对的坐标提取方式
Jun 04 Python
python实现画图工具
Aug 27 Python
python实现自定义日志的具体方法
May 28 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
在数据量大(超过10万)的情况下
2007/01/15 PHP
php重定向的三种方法分享
2012/02/22 PHP
Destoon旺旺无法正常显示,点击提示“会员名不存在”的解决办法
2014/06/21 PHP
PHP PDOStatement::debugDumpParams讲解
2019/01/30 PHP
Laravel框架Blade模板简介及模板继承用法分析
2019/12/03 PHP
Javascript 键盘keyCode键码值表
2009/12/24 Javascript
jQuery 操作下拉列表框实现代码
2010/02/22 Javascript
javascript之querySelector和querySelectorAll使用说明
2011/10/09 Javascript
向当前style sheet中插入一个新的style实现方法
2013/04/01 Javascript
JSON格式化输出
2014/11/10 Javascript
3种Jquery限制文本框只能输入数字字母的方法
2014/12/03 Javascript
jQuery判断指定id的对象是否存在的方法
2015/05/22 Javascript
jquery+CSS3实现3D拖拽相册效果
2016/07/18 Javascript
js控住DOM实现发布微博效果
2016/08/30 Javascript
微信小程序 网络请求(GET请求)详解
2016/11/16 Javascript
jQuery实现简单的滑动导航代码(移动端)
2017/05/22 jQuery
jquery.masonry瀑布流效果
2017/05/25 jQuery
关于vue.js v-bind 的一些理解和思考
2017/06/06 Javascript
AngularJS双向数据绑定原理之$watch、$apply和$digest的应用
2018/01/30 Javascript
javascript面向对象三大特征之继承实例详解
2019/07/24 Javascript
layui实现三级联动效果
2019/07/26 Javascript
[45:40]Ti4 冒泡赛第二天NEWBEE vs NaVi 1
2014/07/15 DOTA
python实现调用其他python脚本的方法
2014/10/05 Python
python获得一个月有多少天的方法
2015/06/04 Python
Python远程视频监控程序的实例代码
2019/05/05 Python
Python中的 is 和 == 以及字符串驻留机制详解
2019/06/28 Python
tensorflow如何继续训练之前保存的模型实例
2020/01/21 Python
浅谈Python 函数式编程
2020/06/20 Python
Python 中如何使用 virtualenv 管理虚拟环境
2021/01/21 Python
StubHub澳大利亚:购买或出售您的门票
2019/08/01 全球购物
怀念母亲教学反思
2014/04/28 职场文书
工会趣味活动方案
2014/08/18 职场文书
2014幼儿园班主任工作总结
2014/12/04 职场文书
SQL Server——索引+基于单表的数据插入与简单查询【1】
2021/04/05 SQL Server
vue实现简单数据双向绑定
2021/04/28 Vue.js
如何vue使用el-table遍历循环表头和表体数据
2022/04/26 Vue.js