前言

嗨喽,大家好呀~这里是爱看美女的茜茜呐

又到了学Python时刻~

本次通过接种新冠疫苗的这个数据统计,来设计“疫苗接种数据库”,

存储人们接种疫苗的相关信息,并实现“增删改查”等基本操作以及其他的拓展功能。

数据库信息

本次数据库设计一共四张表,分别为《接种人员(person)》、《生产厂家(manufacturer)》、《疫苗信息(vaccine)》、《接种信息(inject_info)》。

  1. 《接种人员》表的数据项:

    姓名,身份证号,生日,性别,家庭住址,联系电话,不良反应。

  2. 《生产厂家》表的数据项:

    厂家名称,厂家编号,厂家地址,联系人,联系人电话。

  3. 《疫苗信息》表的数据项:

    疫苗名称,疫苗编号,疫苗品种,疫苗厂家编号,生产日期,过期时间。

  4. 《接种信息》表的数据项:

    接种编号,接种疫苗编号,疫苗品种,接种剂次,接种人姓名,接种人身份证号,接种时间,接种单位。

主要阶段

  1. 确定选题:

    《课程设计-疫苗接种数据库》。

  2. 需求分析:

    《数据库数据字典》,编程语言为:python + mysql

关键代码展示

1、app.py(主函数)

if __name__ == '__main__':# 全局变量初始化gol._init()# # 课题背景信息# menu.course_background()## # 打印小组成员信息# menu.team_info()# 连接数据库信息db.connect_to_db(config.db_host, config.db_user, config.db_password, config.db_name)# 跳出数据库的标志 flag = Truewhile (flag):menu.main_menu()cin = input("请输入要执行操作:")choice = int(cin) if cin.isdigit() else config.DEFAULT_INPUT源码解答加Q裙:261823976 ##if choice == 0:print("您已选择退出,感谢您的操作体验")breakelif choice == config.OP_TYPE_ADD:# ----------------------添加----------------------------mgr_add.add_data()print(config.END_OP_TEXT)input()elif choice == config.OP_TYPE_DELETE:# ----------------------删除----------------------------mgr_delete.do_delete()print(config.END_OP_TEXT)input()elif choice == config.OP_TYPE_SELECT:# ----------------------查找----------------------------mgr_selector.do_select()print(config.END_OP_TEXT)input()elif choice == config.OP_TYPE_UPDATE:# ----------------------修改----------------------------mgr_update.do_update()print(config.END_OP_TEXT)input()else:print("操作选项输入错误,请重新输入")db.close_db_link()

2、mgr_update.py(更新)

def do_update():menu.update_menu_total()cin = util.get_user_input(5)if cin == 0:returnif cin == config.TYPE_1:do_update_person()if cin == config.TYPE_2:do_update_inject_info()if cin == config.TYPE_3:do_update_vaccine()if cin == config.TYPE_4:do_update_manufacturer()def do_update_person():# 更新接种人员表menu.update_menu_1()cin_update = util.get_user_input(4)if cin_update == 0:return# 根据身份证号更新cert_no = input("请输入身份证号:")table = config.table_dict[config.TYPE_1]table_inject_info = config.table_dict[config.TYPE_2]if cin_update == 1:# 更新姓名new_name = input("请输入修改后的姓名:")sql1 = "UPDATE %s SET name='%s' WHERE cert_no='%s';" % (table, new_name, cert_no)sql2 = "UPDATE %s SET person_name='%s' WHERE person_cert_no='%s';" % (table_inject_info, new_name, cert_no)db.execute_sql(sql1)db.execute_sql(sql2)elif cin_update == 2:# 更新电话new_phone = input("请输入修改后的接种人联系电话:")sql1 = "UPDATE %s SET phone='%s' WHERE cert_no='%s';" % (table, new_phone, cert_no)db.execute_sql(sql1)elif cin_update == 3:# 更新住址new_address = input("请输入修改后的家庭住址:")sql1 = "UPDATE %s SET address='%s' WHERE cert_no='%s';" % (table, new_address, cert_no)db.execute_sql(sql1)

3、mgr_add.py(添加)

def add_data():# 添加操作add_menu_1()# 获取用户输入cin = util.get_user_input(5)if cin == 0:return# 获取数据表列table = config.table_dict[cin]columns = get_table_col(table)util.print_log("表的列信息: ",  columns)field_list = []data_list = []for i in columns:col_name = i[0]     # 列名col_type = i[1]     # 列类型col_index_type = i[4]     # 列索引类型col_desc = i[8]     # 列值# 如果是不需要录入则跳过, 比如 id,person_id 等if(col_name in config.SKIP_FIELD_SET):continueutil.print_log("当前列信息", i)# 输入值if col_type == config.FIELD_TYPE_DATETIME:# 日期检查a = input("请输入【%s】, 例如 2022-05-02 : " % col_desc)input_data_invalid = Truewhile(input_data_invalid):if(util.is_valid_date(a) == True):breaka = input("您输入日期不合法,请重新输入,例如 2022-05-02 : ")else:a = input("请输入【%s】: " % col_desc)# 判断唯一关键字是否重复if col_index_type == 'UNI':sql = '''SELECT 1 FROM  %s  WHERE %s = %s ''' % (table, col_name, a)util.print_log("查重 sql: ", sql)cursor = gol.get_value('cursor')exist_in_table = 1while exist_in_table == 1:dup_result = cursor.execute(sql)if dup_result == 0:break# 如果重复则重新输入a = input("您输入与表中信息重复,请重新输入【%s】" % col_name)field_list.append(col_name)data_list.append(a)源码解答加Q裙:261823976 ### 输入完成,组装数据field_str = ",".join(field_list)data_tuple = tuple(data_list)# 拼接数据sql = '''INSERT INTO %s(%s) VALUES %s;''' % (table, field_str, data_tuple)util.print_log(sql)cursor = gol.get_value('cursor')cursor.execute(sql)# 提交数据conn = gol.get_value('conn')conn.commit()util.print_log("%s 表成功插入数据 %s" % (table, data_tuple))return 0

4、mgr_delete.py(删除)

def do_delete():# 删除操作menu.delete_menu_total()# 获取输入cin = util.get_user_input(5)if cin == 0:returnif cin == config.TYPE_1:do_delete_person()if cin == config.TYPE_2:do_delete_inject_info()if cin == config.TYPE_3:do_delete_vaccine()if cin == config.TYPE_4:do_delete_manufacturer()def do_delete_vaccine():# 删除疫苗信息# 打印菜单menu.delete_menu_3()# 获取用户输入cin = util.get_user_input(2)if cin == 0:returndelete_value = input("请输入具体信息:")# 获取相关表table = config.table_dict[config.TYPE_3]table2 = config.table_dict[config.TYPE_2]# 接种编号if cin == 1:sql1 = '''DELETE FROM %s WHERE vaccine_no='%s' ''' % (table, delete_value)sql2 = '''DELETE FROM %s WHERE vaccine_no='%s' ''' % (table2, delete_value)db.execute_sql(sql1)db.execute_sql(sql2)

5、mgr_selector.py(查找)

def do_select():# 执行查询menu.select_menu_total()# 获取输入cin = util.get_user_input(5)if cin == 0:returnif cin == config.TYPE_1:# ------------------查找接种人员相关信息----------------do_select_person()elif cin == config.TYPE_2:# ------------------查找接种信息-----------------------do_select_inject_info()elif cin == config.TYPE_3:# ------------------查找疫苗信息-----------------------do_select_vaccine()elif cin == config.TYPE_4:# ------------------查找生产企业相关信息-----------------------do_select_manufacturer()def do_select_vaccine():# 查找疫苗信息menu.select_menu_3()cin = util.get_user_input(5)if cin == 0:return# 获取搜索数据cin2 = input("请输入搜索数据:")table = config.table_dict[config.TYPE_3]query_value = cin2# 结果集合result = []# 疫苗编号if cin == 1:result = db.query_by_table_field(table, 'vaccine_no', query_value)# 厂家编号if cin == 2:result = db.query_by_table_field(table, 'company_no', query_value)# 生产日期if cin == 3:sql = ''' SELECT * FROM %s  WHERE %s >= '%s' ''' % (table, 'production_at', query_value)cursor = gol.get_value('cursor')cursor.execute(sql)result = cursor.fetchall()源码解答加Q裙:261823976 ### 过期时间if cin == 4:sql = ''' SELECT * FROM %s  WHERE %s <= '%s' ''' % (table, 'expired_at', query_value)cursor = gol.get_value('cursor')cursor.execute(sql)result = cursor.fetchall()show_select_vaccine_result(result)

数据库数据字典

1、接种人员(person)

2、生产厂家(manufacturer)

3、疫苗信息(vaccine)

4、接种信息(inject_info)

运行效果

1、设计背景

2、小组信息

3、主界面

4、新增操作

5、删除操作

6、查询操作

7、修改操作

PS:源码如有需要的小伙伴可以加下方的群去找管理员免费领取

分享

兄弟们学习python,有时候不知道怎么学,从哪里开始学。掌握了基本的一些语法或者做了两个案例后,不知道下一步怎么走,不知道如何去学习更加高深的知识。

那么对于这些小伙伴们,我准备了大量的免费视频,PDF电子书籍,以及源代码!

直接点击这里领取即可! 我都放在这里了。

希望对各位有所帮助~




尾语

数据库大作业:Python实现疫苗接种数据库管理相关推荐

  1. 数据库大作业 openGauss程序设计

    本文最终实现一个Web在线考试管理系统,可作为Python Web,Django的练手项目. 摘要 本系统实现学生在线考试管理的基本功能,包括学生登录.查看自己的个人信息及考试信息:提供了在线考试的界 ...

  2. 专科mysql数据库大作业_数据库大作业整理·总

    能找到这里的小同学,我们可能是校友哦. 这个不正经的帖子来整理一下我们用pyqt5+eric6+mysql开发天气管理系统(17地市)的所有走过的路,尤其是我走弯路后的修正路线. 因为找了一些资料,看 ...

  3. 数据库大作业学习(一)

    写在前面: 写这些博文,记录一下被数据库大作业逼迫的日子.两周,看看能不能赶出来. 港真,我们小组三人都是菜到不能再菜的渣渣了!!绝望.jpg.我觉得够呛--不管咋样,试试再说吧.我们准备用从来没玩过 ...

  4. java大作业用jsp数据库java_JSP数据库大作业 - 不是太阳也要发光的个人页面 - OSCHINA - 中文开源技术交流社区...

    本人QQ:240814476  欢迎大家提问,共同学习,共同进步. 最近做了一个数据库大作业啊,想用JSP做,发现代码量好大,在做前台的时候感觉手忙脚乱,没时间. 可能是本人拖了太久的原因吧 . 做的 ...

  5. 数据库大作业代码展示2

    因为上个界面实在是太卡了,尤其在c#代码里,打字都是延缓的,所以分开来展示. 这一个主要是管理员界面的介绍,窗口调用如下: ManageMain窗口:(管理员主界面)省略代码和前文一样, (学生管理) ...

  6. MySQL数据库大作业——学生管理系统GUI

    MySQL数据库大作业--学生管理系统GUI 原程序链接: https://www.bbsmax.com/A/kmzL3WQBdG/ 为了完成数据库大作业, 我在其基础上进行了一定的修改和扩充. 如果 ...

  7. mysql数据库大作业学籍管理系统_数据库大作业学籍管理系统代码和报告

    [实例简介] 此为大学数据库大作业的报告以及源代码及打包程序.数据库使用MySQL设计,管理界面采用java编写,附带完整报告. [实例截图] [核心代码] 15180210013康辉数据库报告 └─ ...

  8. 数据库大作业C++builder

    数据库大作业C++builder 功能齐全 下载地址 Access 完成增删改查 利用C++builder 实现显示 运行截图

  9. 学校图书借阅管理系统(python + sql serve)数据库大作业

    最近学校数据库原理结课,需要做一个大作业,还要求写图形化界面,现在分享我的源码,有很多不足之处我也懒的改了,给大家参考一下 具体要实现的功能为图书,读者信息的增删查改,借书还书触发器更改实时库存,超时 ...

  10. mysql+php数据库大作业之世界杯比赛系统

    说明:此项目为本人大三数据库课程的课程大作业.由于只学习过相关的sql知识,对于前端的知识并不是很了解,只花了一周的时间来学习前端,所以此版本只能算是一个阉割版,有很多功能还未实现,希望以后能有机会继 ...

最新文章

  1. tinyhttp源码阅读(注释)
  2. 根据url获取html源码,通过URL访问和获取html源代码
  3. android学习笔记---44_在线视频播放器,网络视频解析器,SurfaceView 控件使用方法
  4. java影院座位订票代码_基于jsp的影院订票-JavaEE实现影院订票 - java项目源码
  5. 新罗马字体linux,WPS文字办公—将阿拉伯数字替换为新款Times New Roman字体
  6. native方法在java中介绍及使用图解
  7. 2016中国app年度排行榜:十大行业、25个领域、Top 500 和2017趋势预测
  8. 有监督机器学习训练流程---人工智能工作笔记0015
  9. linux怎样安装麒麟双系统,win10系统装麒麟系统双系统的具体办法
  10. 几经沉浮,人工智能(AI)前路何方?
  11. 百度网盘外链采集分析 爬取百度网盘用户分享 自建百度网盘文件链接搜索引擎
  12. ssdt函数索引号_BUG:SSDT函数名获取SSDT函数号
  13. 创建反向词典,为你打开神经网络的大门
  14. Linux基础, 基础命令, 基于公钥的免密登录
  15. 卷积层TSNE可视化
  16. 浙江大学教授郑强的经典语录
  17. python_speech_features库学习
  18. 前端学习第16天:媒体查询-响应式布局
  19. autoconf介绍1
  20. python GSM模块-电脑接收短信

热门文章

  1. book-----好书~~~~
  2. ffmpeg环境变量配置linux,FFmpeg安装及encode库的安装说明
  3. 【c++/euler】套圈法解有向图的欧拉回路
  4. Electric Vehicles Are a Platform Business What Firms Need to Know
  5. 【从零开始学习人工智能】 人工智能简介 - 04强化学习
  6. 10月24日,成为程序员的节日
  7. Amber | 推荐力场类型
  8. C# 如何获取端口是否被占用
  9. 解决谷歌浏览器(chrome)不能登录,不能同步的最简单方法!
  10. bWAPP——CSRF