- 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}