Python3.9数据库SQLite3学起(6)

Python3.9数据库SQLite3学起(6)

学生分数管理系统

系统搭建框架如下:

一、几个函数的创建

1、check函数——查重函数
  • 与上节那段代码一致,老师讲的不适用,改正我这种笨笨的,用切片,只适用于本例,换了场景就不好用,硬着陆了。

def check(db_name, table_name):

    conn = sqlite3.connect(db_name)

    inCu = conn.cursor()

    sql_ch = f"""select name from sqlite_master where name = '{table_name}'"""

    inCu.execute(sql_ch)

    tables = inCu.fetchall()

    if tables != []:
        if table_name in tables[0][0]:
            return True
    else:
        return False
2、menu_func函数——功能菜单
  • 这是进入程序,第一步要显示的内容,效果展示如下。
    Python3.9数据库SQLite3学起(6)

使用的方法代码,最后见总程序。

; 3、search_func函数——查询成绩

def search_func():

    myCursor.execute("select * from scores")

    return myCursor.fetchall()
  • 在每个cursor.execute之后,只能使用cursor.fetchall一次。它”耗尽”光标,获取所有数据,然后无法再次”读取”。因此在主函数中,pause任意键后继续调用主菜单函数。效果如下:
    Python3.9数据库SQLite3学起(6)
    这样,每次只读一条记录,然后一步步把所有的记录读完。

二、主程序的编写

1、创建表的DDL语句,也是先检查再创建
以下几个步骤
(1)连数据库
(2)建游标
(3)利用查重函数判断是否建学生分数表
(4)进入主菜单
(5)开始无限循环
2、while无限循环让用户选择菜单功能
  • while无限循环的使用,要注意段落范围。
    Python3.9数据库SQLite3学起(6)
3、关闭游标、关闭库的连接
  • 单纯关闭库,而不关闭游标,它会继续存在,所以,断开库连接前,一定关闭游标

三、回忆错误调试

1、虚拟系统表中查找要创建的表,没有就创建,有就使用
  • 这里用了硬代码,目前水平,只能硬来,如图
    Python3.9数据库SQLite3学起(6)
  • 上面图片里面很明显,打印出列表值之后,再切片,然后就可以用来在后面主程序里面来比对了,此处用了两个if语句,出现两种情况,才这么处理的。
    (1)只用一个if语句,带上切片的情况:当没有此表,虚拟系统表里面没数据,此处就返回range的溢出报错。
    (2)只用一个if语句,不带切片的情况:当数据库里面有此表 ,显示如下图的的报错,说明没用切片,数值不匹配。
    Python3.9数据库SQLite3学起(6)
; 2、打印输出时,字符乱码的处理
  • 一话不说,上图。
    Python3.9数据库SQLite3学起(6)
  • 运行——编辑配置——在输出控制台中模拟终端。不行的话,点了对号,应用,再点上确定。
    Python3.9数据库SQLite3学起(6)
    Python3.9数据库SQLite3学起(6)
    Python3.9数据库SQLite3学起(6)
3、用户录入信息的几点注意

Python3.9数据库SQLite3学起(6)
  • 字段数量对应,字符串类型转化数值类型。。。
; 4、几个数据库名称的一致
  • 最后一晚,一个很简单的错误,可是害我搞了一晚上,那就是出现的数据库名称不止一处,其中一处弄错了,出现稀奇古怪的问题,亲们可以改了试试。

补充:pause和cls

pause的效果,实现“请按任意键继续……”,也就是刚才乱码的地方。
cls是一个老DOS命令了,就是"clear the screen"的缩写。

Original: https://blog.csdn.net/alijunshan/article/details/128154974
Author: 朝兮暮兮
Title: Python3.9数据库SQLite3学起(6)

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/816857/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球