irpas技术客

?震惊这福利还不知道!免安装几分钟速学Python内库Sqlite3?_雷学委

irpas 5964

学委之前写了一篇把 热榜生成html报告的,看起来是方便了。

但是统计不太方便啊!好吧,我们搞个数据库把数据存起来,存多点后面分析。

那么,选择哪个数据库好呢?

MySQL?Oracle?PostgresSQL?云数据库?

好多选择啊,Python就内置了一个数据库福利,这里就是Sqlite(sqlite3内置库)啦。

安装sqlite3?不用!

sqlite3是python安装后的一个预装的模块,算是内置的数据库,直接导入就完啦。

下面直接看代码,保存为demo_db.py.

""" 雷学委Demo代码 """ import sqlite3 #创建数据库连接 xuewei_conn = sqlite3.connect("xuewei_jishu.db") #新建游标 cur = xuewei_conn.cursor() #下面的sql为创建数据库表tech_stack sql = """ create table tech_stack( id INT, name TEXT ); """ cur.execute(sql) cur.close()

代码加了注释了比较简单不多赘述,直接复制运行代码。

直接查看当前运行目录,发现多了一个xuewei_jishu.db 也可以用终端输入sqlite3 xuewei_jishu.db使用数据库,如下:

小白会问:内置数据库是不是可以缩写简记为内库啊?那么sqlite3 就是python的内库啊?

呵呵,学委并不想理会,同时想要扔几千行SQL过去。(开个玩笑,写SQL不要搞几千行这样很不厚道!害人害己啊!)

我们刚刚创建了数据库了, 并在数据库中创建了一个表tech_stack(小白还没有反应过来,这就搞定了?)。

我们在数据表中添加技术棧吧

保存下面代码为,demo_db_add.py

""" 雷学委Demo代码 """ import sqlite3 #创建数据库连接 xuewei_conn = sqlite3.connect("xuewei_jishu.db") #新建游标 cur = xuewei_conn.cursor() sql = """ insert into tech_stack (ID, name) values (1, "Java"), (2, "Python"), (3, "Node.JS"), (4, "Scala"); """ cur.execute(sql) #PS学委会的不止这些,这里只是展示一下,欢迎关注三连支持! xuewei_conn.commit() #PS:commit必须记得 cur.close() #也记得close

运行代码,这个不会报错的。

查看数据库表格的内容 """ 雷学委Demo代码 """ import sqlite3 #创建数据库连接 xuewei_conn = sqlite3.connect("xuewei_jishu.db") #新建游标 cur = xuewei_conn.cursor() sql = """ select * from tech_stack; """ cur.execute(sql) data = cur.fetchall() print('query result; %s' % (data)) cur.close()

运行效果如下:

练手完毕,现在创建数据库blog,同时建一个表ranklist 列类型示例值idrow_id 字符串类型09467de8-ff76-11eb-8c11-7831c1c54756title字符串类型??爬虫截长屏不方便阅读!推荐dominate直接生成报告??link字符串类型https://blog.csdn.net/geeklevin/article/details/119657231author字符串类型雷学委creation_timeTIMESTAMP2021-08-18 00:13:19
学委特别定制之创建数据库和表格Python代码 """ 雷学委Demo代码 """ import sqlite3 #创建数据库连接 xuewei_conn = sqlite3.connect("blog.db") #新建游标 cur = xuewei_conn.cursor() sql = """ create table ranklist( id VARCHAR(36) NOT NULL PRIMARY KEY, title TEXT, link TEXT, author TEXT, creation_time TIMESTAMP default (datetime('now','localtime')) ); """ cur.execute(sql) cur.close() 学委特别定制之添加数据,查询展示 """ 雷学委Demo代码 """ import sqlite3 import uuid #创建数据库连接 xuewei_conn = sqlite3.connect("blog.db") #新建游标 cur = xuewei_conn.cursor() fsql = """ insert into ranklist(id, title, link, author) values ('%s', '%s', '%s', '%s'); """ sql = fsql % (uuid.uuid1(), "??爬虫截长屏不方便阅读!推荐dominate直接生成报告??","https://blog.csdn.net/geeklevin/article/details/119657231", "雷学委") print("sql %s" % sql) cur.execute(sql) xuewei_conn.commit() #LEIXUEWEI温馨提示:这里记得调用commit,否则插入语句执行无效果。 sql = "select * from ranklist; " cur.execute(sql) data = cur.fetchall() print("[雷学委] 热榜文章: %s" % str(data)) cur.close()

效果如下图:

总结

我们以上完成了建库,建表,添加和查询数据几个步骤了。

Python提供的这个“内库”sqlite3是Sqlite数据库的操作接口,使用也很简单,就几分钟的事情。

比较简单,刚刚好适用来进行热榜分析了。

对了,学委还有这个可以关注长期阅读 =>雷学委趣味编程故事汇编 或者=> 雷学委NodeJS系列

这次先把热榜文章表建好,下一篇,学委准备把热榜放到Sqlite里面,后面进行分析。

持续学习持续开发,我是雷学委! 编程很有趣,关键是把技术搞透彻讲明白。 创作不易,请多多支持,点赞收藏支持学委吧!


1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,会注明原创字样,如未注明都非原创,如有侵权请联系删除!;3.作者投稿可能会经我们编辑修改或补充;4.本站不提供任何储存功能只提供收集或者投稿人的网盘链接。

标签: #学委之前写了一篇把