Skip to main content

我们理解您需要更便捷更高效更轻量级的工具记录数据,并将其中承载的价值传播给他人,longan-sqlite3 是我们给出的答案

Project description

欢迎使用longan-sqlite3 v1.0


我们理解您需要更便捷更高效更轻量级的工具记录数据,并将其中承载的价值传播给他人,longan-sqlite3 是我们给出的答案 ———— 让您随心所欲的完成如下功能

Python version >= 3.6

  • Create
  • Research
  • Update
  • Delete

longan-sqlite3-logo

您现在看到的这个 longan-sqlite3 版本,为正式版,以发布至pypi

1.0 正式发布至pypi

0.8 修复获取表主键的方式,并增加了 Kernel 和 FastFlesh 以简化操作

0.7 新增创建表

0.6 新增排序和分页的函数,支持了几乎所有聚合函数

0.5 where子句 1.新增 between 和 in 的支持, 新增方法; 2.提供like表达式忽略大小写的功能 init方法提供debug模式,可以打印sql语句

0.4 新增API文档

0.3 新增分组聚合函数

0.2 修复了主键判断,修复了handler接口


什么是 longan

longan 是一种水果,很甜,喜欢的人吃很多,不喜欢的人一吃就上火!

1. 以下是我们计划中的功能

  • 支持 CRUD
  • 支持 分组聚合函数
  • 修复 API文档
  • 新增 where 语句支持

2. 以下是我们的行为守恒公式

longan=mc^2

3. 使用方法

  • 安装
pip install longan_sqlite
  • 导入longan
from longan_sqlite import Longan, Flesh
  • 初始化longan
Longan.init('test.db', True)
  • 实例化longan
longan = Longan('company')
  • 导入数据库(此处会在日后的版本中进行抽象)
longan.execute_file('company.sql')
  • 其中的表结构 company.sql
CREATE TABLE IF NOT EXISTS COMPANY(
   id INTEGER PRIMARY KEY AUTOINCREMENT,
   name           TEXT    NOT NULL,
   age            INT     NOT NULL,
   address        CHAR(50),
   salary         REAL
);
  • Create
flesh = Flesh(name='emperor', age=23, address='北京', salary=10)
longan.insert_or_update(flesh)
  • Update
flesh.age += 1
flesh.salary += 5
longan.insert_or_update(flesh)
  • Query
ret = longan.where(age_gt=18, salary_elt=100, salary_gt=0).query()
for r in ret:
    print(r)
  • Delete
# 查询
ret = longan.where(age_gt=18, salary_elt=100, salary_gt=0).query()

for r in ret:
    print(r)
    if r.name == 'jobs':
        # 通过对象进行删除
        longan.delete(r)

# 通过条件进行删除
longan.where(id_gt=0).delete()
  • 0.3新增分组聚合查询
longan.aggregate(age_max="maxAge", salary_min="minSalary")
longan.where(age_gt=5)
longan.group_by('address')
ret = longan.query()
for r in ret:
    print(r)

4. API文档

接口 参数 说明
init db_path, debug 初始化数据库文件,开启debug模式后,将会打印sql语句
select - 未开放,当前版本默认为选择全部字段,除非使用聚合函数
from_table table_name 指定查询表
where **field_condition 借鉴了Django中查询的操作,"_"前为字段名,后为表达式,需要传递值
insert_or_update *field_obj 将一个或多个Flesh对象插入或更新到表中,会自动为对象添加主键
insert *field_obj 将一个或多个Flesh对象插入到表中,会自动为对象添加主键
update *field_obj 将一个或多个Flesh对象更新到表中
delete *field_obj 可以通过where方法来根据条件来进行删除,也可以对一个或多个Flesh对象直接删除,前提是对象拥有主键
group_by field 对指定字段进行分组
aggregate **field_condition 可以参考where语句:字段名_聚合函数名="别名"
query - 查询,需要组合使用
primary_key - 主键
ignore_case ignore 是否忽略大小写
limit num, offset 分页
order_by field, desc 根据字段进行排序

5. Where子句操作表达式

操作符 运算符 说明
gt > 大于
lt < 小于
eq = 等于
neq != 不等于
egt >= 不小于
elt <= 不大于
like LIKE 字符串模糊查询
in IN 集合查询,参数传值为tuple,如: age_in=(28, 29, 30)
between BETWEEN 介于两值之间,参数传值为两个元素的tuple,如有多个则取第一个和最后一个,如:age_between=(28, 30)

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

longan_sqlite-1.3.tar.gz (10.0 kB view hashes)

Uploaded Source

Built Distribution

longan_sqlite-1.3-py3-none-any.whl (14.3 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page