刷题刷出新高度,偷偷领先!偷偷领先!偷偷领先! 关注我们,悄悄成为最优秀的自己!

简答题

37.使用Python的sqlite3库完成以下操作:
1.创建一个名为cpu的数据库文件,并创建一张Rate的表(表有三个字段:ID、Rate、updatetime)
2.记录下十秒钟cpu相关数据,并删除第id为1的数据。
import sqlite3
import datetime
import psutil #获取cpu当前占比
conn = sqlite3.connect(" ① ")
creatsql = "create table Rate(ID integer primary key, Rate float,updatetime time)"

cur.execute(creatsql)
conn.commit()
insertsql = "insert into Rate(ID,Rate,updatetime) values(%d,%f,'%s')"
checksql = "select * from Rate"
for x in range(0,10):
nowtime = datetime.datetime.now()
nowtime = nowtime.strftime('%Y-%m-%d %H:%M:%S')
cpu_per = float(psutil.cpu_percent(1))
cur. ③ (insertsql % (x,cpu_per,nowtime))
conn.commit()
cur.execute(checksql)
data = cur.fetchall()
delsql="delete from Rate where ID=%d"
cur.execute(delsql %1)
conn.commit()

conn.close()

使用微信搜索喵呜刷题,轻松应对考试!

答案:

1. 创建一个名为cpu的数据库文件,并创建一张Rate的表(表有三个字段:ID、Rate、updatetime)```pythonconn = sqlite3.connect("cpu.db")creatsql = "create table Rate(ID integer primary key, Rate float,updatetime text)"cur.execute(creatsql)conn.commit()```2. 记录下十秒钟cpu相关数据,并删除第id为1的数据。```pythoncur = conn.cursor()insertsql = "insert into Rate(ID,Rate,updatetime) values(%d,%f,'%s')"for x in range(0,10):nowtime = datetime.datetime.now()nowtime = nowtime.strftime('%Y-%m-%d %H:%M:%S')cpu_per = float(psutil.cpu_percent(1))cur.execute(insertsql % (x,cpu_per,nowtime))conn.commit()cur.execute(checksql)data = cur.fetchall()delsql="delete from Rate where ID=?"cur.execute(delsql, (1,))conn.commit()conn.close()```

解析:

【喵呜刷题小喵解析】:

首先,我们需要在Python中导入sqlite3库,用于与SQLite数据库进行交互。然后,我们创建一个名为"cpu.db"的数据库文件,并使用sqlite3.connect()函数建立与数据库的连接。

接着,我们创建一个名为"Rate"的表,该表有三个字段:ID(整数类型,主键)、Rate(浮点类型)、和updatetime(字符串类型,表示时间)。

然后,我们使用psutil库获取CPU的当前使用率,并使用datetime库获取当前时间。在循环中,我们依次插入10条数据,每条数据包括ID、CPU使用率、和时间。

在插入完所有数据后,我们执行一条查询语句,获取所有的数据,并删除ID为1的数据。最后,我们关闭数据库连接。

在解析过程中,我们注意到原始代码中存在一些错误,例如:

1. 数据库文件名未指定,我们将其指定为"cpu.db"。
2. 表结构定义中的"updatetime"字段类型错误,应为"text"类型,而不是"time"类型。
3. 在插入数据时,原始代码使用了字符串格式化,但这种方式容易引发SQL注入攻击,我们使用问号占位符和元组传递参数的方式,更加安全。
4. 在删除数据时,原始代码使用了字符串格式化,同样容易引发SQL注入攻击,我们同样使用问号占位符和元组传递参数的方式,更加安全。
创作类型:
原创

本文链接:37.使用Python的sqlite3库完成以下操作:1.创建一个名为cpu的数据库文件,并创建一张

版权声明:本站点所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明文章出处。

让学习像火箭一样快速,微信扫码,获取考试解析、体验刷题服务,开启你的学习加速器!

分享考题
share