Python?操作sqlite3数据库
发布时间:2022-10-19 15:40:14 所属栏目:MySql教程 来源:
导读: 在本文中,让我们将使用 sqlite3 模块创建一个诗人(poet)数据库和一个诗人表数据库插入操作,然后将诗人条目插入表中,然后从表中再次检索它并在控制台上显示它, 基本上,sqlite3 将基于 SQL 命令创建数据库和表
|
在本文中,让我们将使用 sqlite3 模块创建一个诗人(poet)数据库和一个诗人表数据库插入操作,然后将诗人条目插入表中,然后从表中再次检索它并在控制台上显示它, 基本上,sqlite3 将基于 SQL 命令创建数据库和表,插入、删除和检索条目,因此该模块本身实际上是一个 SQL 包装器对象。 下面的程序将创建一个数据库来保存我的诗人和诗人的创建日期。之后,我可以进入诗人并将其保存在诗人表中, 最后,所有这些诗人都将被检索并显示在控制台上。 在使用 sqlite3 模块之前,需要先导入它,这是内置模块,因此只需将其导入 python 文件,如下所示: import datetime import sqlite3 除此之外,还需要导入 datetime 模块来记录诗人的创作日期。 接下来,如果尚未创建数据库,python 程序将创建数据库,如果尚未创建,则创建诗人表,注意 sqlite_master 表是 SQLite 内置的,它包含诗人表定义的条目,如果 该表已创建,否则下面的 python 程序将首次创建该表。 try: ? ?con = sqlite3.connect("poet.db") # 开始连接到当前工作目录中的诗人数据库poet.db,如果尚未创建数据库,则创建它 ? ?cur = con.cursor() # 创建游标 ? ?# 如果已经创建了诗人表,则获取它的名称,否则创建它 ? ?res = cur.execute("SELECT name FROM sqlite_master WHERE type='table' AND name='poet'") ? ?name_list = res.fetchall()[0][0] ? ?if name_list != 'poet': ? ? ? ?cur.execute("CREATE TABLE poet(poet, year)") ? ?poet = input("Enter your poet: ") # gets the user input ? ?cur.execute("INSERT INTO poet VALUES(?, ?)", (poet, datetime.datetime.now())) # 插入数据到表中 ? ?con.commit() ? ?for row in cur.execute("SELECT poet, year FROM poet ORDER BY year"): # 检索数据从表中 ? ? ? ?print(row[0] + " - " + row[1]) # 按行打印数据 ? ?cur.close() # 关闭游标 ? ?con.close() # 关闭连接 except sqlite3.OperationalError: ? ? ? ?print("error occur") 然后程序将要求用户输入诗人,然后将其保存到表中,必须在连接对象上调用 con.commit() 来提交事务,以便将诗人和日期插入表中。 为了避免SQL注入攻击,你应该经常使用?将数据绑定到查询的占位符,如下所示:- cur.execute("INSERT INTO poet VALUES(?, ?)", (poet, datetime.datetime.now())) 最后,程序将从诗人表中查询输入的所有诗人,然后在 for 循环中将它们打印出来, 每行都包含来自诗人表的条目, 需要注意,整个代码都包含在 try 和 except 块中,如果发生错误,它将向用户打印错误信息。 (编辑:航空爱好网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
站长推荐

