刷题刷出新高度,偷偷领先!偷偷领先!偷偷领先! 关注我们,悄悄成为最优秀的自己!
简答题
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)
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()
使用微信搜索喵呜刷题,轻松应对考试!
答案:
解析:
首先,我们需要在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 许可协议。转载请注明文章出处。让学习像火箭一样快速,微信扫码,获取考试解析、体验刷题服务,开启你的学习加速器!



