前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Sqlite Queue(Python) – 简单的SQLite队列

Sqlite Queue(Python) – 简单的SQLite队列

作者头像
KAAAsS
发布2022-01-14 17:53:09
1.6K0
发布2022-01-14 17:53:09
举报
文章被收录于专栏:KAAAsS's Blog

文章目录[隐藏]

老物搬运23333

简介

基于python实现的sqlite队列,方便的处理sqlite并发。并且包含一个十分简洁好用的SQL语句包装。

认真的讲,我真的不会python。这个库纯粹是因为一时兴起外加一个小脑洞。而且大部分代码都是在手机的QPython上完成的,于是质量可想而知(不过我尽量都改掉了QAQ)。

示例

一个简单的队列可以在两行代码实现。

代码语言:javascript
复制
import sqlite_queue

queue = sqlite_queue.SqliteQueue('test.db')
queue.start()

以下是一个完整的示例:

代码语言:javascript
复制
import sqlite_queue

queue = sqlite_queue.SqliteQueue('test.db')
queue.setDaemon(False)  # 默认为守护线程
queue.start()

# 测试INSERT
for i in range(12,15):
    queue.register_execute("INSERT INTO stocks VALUES ('2017-02-04','BUY','RHAT',?,35.14)", (i,)
		, callback=lambda lst_row, data: print(lst_row))

# 测试SELECT
queue.register_execute("SELECT * FROM stocks", callback=lambda lst_row, data: print(data))

# 包装SQL语句SELECT
queue.select('stocks').where('price', '>=', 30) \
                        .order('price').page(1, 5)\
                        .register(callback=lambda lst_row, data: print(data))

其实神奇的用法还有一些,尤其是关于SQL语句的包装,示例位于example/sql_builder.py。这里节选一些好了:

代码语言:javascript
复制
# INSERT语句
queue.insert('stocks')\
    .data({'trans': 'BUY', 'symbol': 'RHAT', 'price': 35.14, 'qty': 100, 'date': '2017-01-01'}).register()

# 两种不同写法的SELECT语句
queue.select('stocks').where('price', '>=', 30).where('trans', ['BUY', 'SELL'])\
    .where('date', '><', ['2017-02-01', '2017-12-31']).order('price').register(lambda data: print(data))

queue.select('stocks').where({
    'price[>=]': 30,
    'trans': ['BUY', 'SELL'],
    'date[><]': ['2017-02-01', '2017-12-31']}).order('price').register(lambda data: print(data))

where支持链式和dict对象两种写法,我个人还是比较喜欢的。第二种写法借鉴了medoo这个PHP库。

其实回调也是很棒的,比如INSERT语句就可以返回当且操作的行数。具体的文档看这里:WIKI-回调函数

对了,peewee也是支持哒~

项目地址

https://gitee.com/kaaass/sqlite_queue_python

欢迎各位前往Star、Fork!

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2018/02 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 简介
  • 示例
  • 项目地址
相关产品与服务
数据库
云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档