- Kivy 教程
- Kivy - 首页
- Kivy 基础
- Kivy - 开始
- Kivy - 安装
- Kivy - 架构
- Kivy - 文件语法
- Kivy - 应用
- Kivy - Hello World
- Kivy - 应用生命周期
- Kivy - 事件
- Kivy - 属性
- Kivy - 输入
- Kivy - 行为
- Kivy 按钮
- Kivy - 按钮
- Kivy - 按钮事件
- Kivy - 按钮颜色
- Kivy - 按钮大小
- Kivy - 按钮位置
- Kivy - 圆形按钮
- Kivy - 禁用按钮
- Kivy - 图片按钮
- Kivy 组件
- Kivy - 组件
- Kivy - 标签
- Kivy - 文本输入
- Kivy - 画布
- Kivy - 线
- Kivy - 复选框
- Kivy - 下拉列表
- Kivy - 窗口
- Kivy - 滚动视图
- Kivy - 轮播
- Kivy - 滑块
- Kivy - 图片
- Kivy - 弹出窗口
- Kivy - 开关
- Kivy - 微调器
- Kivy - 分隔器
- Kivy - 进度条
- Kivy - 气泡
- Kivy - 标签面板
- Kivy - 散点图
- Kivy - 手风琴
- Kivy - 文件选择器
- Kivy - 颜色选择器
- Kivy - 代码输入
- Kivy - 模态视图
- Kivy - 切换按钮
- Kivy - 相机
- Kivy - 树视图
- Kivy - reStructuredText
- Kivy - 动作栏
- Kivy - 播放器
- Kivy - 模板视图
- Kivy - 虚拟键盘
- Kivy - 触摸涟漪
- Kivy - 音频
- Kivy - 视频
- Kivy - 拼写检查
- Kivy - 效果
- Kivy - 输入记录器
- Kivy - OpenGL
- Kivy - 文本
- Kivy - 文本标记
- Kivy - 设置
- Kivy 布局
- Kivy - 布局
- Kivy - 浮动布局
- Kivy - 网格布局
- Kivy - 箱式布局
- Kivy - 堆叠布局
- Kivy - 锚点布局
- Kivy - 相对布局
- Kivy - 分页布局
- Kivy - 回收布局
- Kivy - 布局嵌套
- Kivy 高级概念
- Kivy - 配置对象
- Kivy - 图集
- Kivy - 数据加载器
- Kivy - 缓存管理器
- Kivy - 控制台
- Kivy - 动画
- Kivy - 多笔画
- Kivy - 时钟
- Kivy - SVG
- Kivy - UrlRequest
- Kivy - 剪贴板
- Kivy - 工厂
- Kivy - 手势
- Kivy - 语言
- Kivy - 图形
- Kivy - 绘制
- Kivy - 打包
- Kivy - Garden
- Kivy - 存储
- Kivy - 矢量
- Kivy - 工具
- Kivy - 检查器
- Kivy - 工具
- Kivy - 日志记录器
- Kivy - 帧缓冲区
- Kivy 应用和项目
- Kivy - 绘图应用
- Kivy - 计算器应用
- Kivy - 计时器应用
- Kivy - 相机处理
- Kivy - 图片查看器
- Kivy - 贝塞尔曲线
- Kivy - 画布压力测试
- Kivy - 圆形绘制
- Kivy - 组件动画
- Kivy - 其他
- Kivy 有用资源
- Kivy - 快速指南
- Kivy - 有用资源
- Kivy - 讨论
Kivy - 存储
Kivy 框架中的 Storage 类用于通过索引条目加载和存储任意数量的键值对。“kivy.storage” 模块定义了 AbstractStore 类。其实现——**DictStore、JsonStore** 和 **RedisStore**——提供了具体的类。
kivy.storage.dictstore.DictStore:使用 Python 字典作为存储。
kivy.storage.jsonstore.JsonStore:使用 JSON 文件作为存储。
kivy.storage.redisstore.RedisStore:使用带有 redis-py 的 Redis 数据库。
要使用以上任何存储类,请导入相关的类,声明一个对象并调用其 put() 方法来存储键值对。对于 JsonStore:
from kivy.storage.jsonstore import JsonStore store = JsonStore('hello.json') # put some values store.put(name, key1=val1, key2=val2)
这将在当前目录中创建 hello.json 文件。您可以使用 get() 方法检索信息。
print (store.get(name)[key])
AbstractStore 类中定义了以下方法,需要由具体的实现(如 DictStore)重写:
**clear()** - 清空整个存储。
**count()** - 返回存储中条目的数量。
**delete(key)** - 从存储中删除一个键。如果找不到该键,则会抛出 KeyError 异常。
**exists(key)** - 检查存储中是否存在某个键。
**find(**filters)** - 返回与过滤器匹配的所有条目。条目通过生成器以 (key, entry) 对列表的形式返回,其中 entry 是键值对的字典。
**get(key)** - 获取存储在 key 处的键值对。如果找不到该键,则会抛出 KeyError 异常。
**keys()** - 返回存储中所有键的列表。
**put(key, **values)** - 将新的键值对(在 values 中给出)放入存储中。任何现有的键值对都将被删除。
这些方法 (get()、put()、exists()、delete()、find()) 都有异步版本。这些方法可以带或不带回调参数调用。如果给出回调参数,则请求将是异步的,回调会在结果可用时将其返回给用户。如果回调为 None,则请求将是同步的,结果将直接返回。
示例
这是一个示例:
# synchronous res=store.get(key) print (res) # asynchronous def my_callback(store, key, result): print (result) store.get(key)
回调函数应具有以下参数:
**store** - 当前使用的 'Store' 实例。
**key** - 要查找的键。
**result** - 键查找的结果。
示例
from kivy.storage.jsonstore import JsonStore from kivy.storage.dictstore import DictStore store = JsonStore('store.json') # put some values store.put('state', name='Maharashtra', capital='Mumbai', population='Eleven Cr') store.put('os', name='Windows', version=11, released=2021) store.put('shape', type='circle', radius=5) # using the same index key erases all previously added k-v pairs # get a value using a index key and key print('Population of ', store.get('state')['name'], 'is ', store.get('state')['population']) print (store.get('state').keys()) for k,v in store.get('state').items(): print (k,":",v) # or guess the key/entry for a part of the key for item in store.find(type='circle'): print('Store:',item[0]) print('K-V pairs: ',str(item[1]))
输出
它将产生以下输出:
Population of Maharashtra is Eleven Cr dict_keys(['name', 'capital', 'population']) name : Maharashtra capital : Mumbai population : Eleven Cr Store: shape K-V pairs: {'type': 'circle', 'radius': 5}