patx/pickledb
update readme.md
Commit 224c390 · patx · 2025-02-09T16:25:35-05:00
Comments
No comments yet.
Diff
diff --git a/README.md b/README.md
index 856f908..00a25a5 100644
--- a/README.md
+++ b/README.md
@@ -376,29 +376,48 @@ def backup_to_s3(db_instance, bucket_name, s3_key):
backup_to_s3(db, 'my-s3-bucket', 'backup/my_database.db')
```
-### Use pickleDB over HTTP (REST)
+### Use pickleDB over HTTP
Access pickleDB database with any language that can handle REST requests:
```python
-from flask import Flask, request, jsonify
-from pickledb import PickleDB
+from pickledb import AsyncPickleDB
+from MicroPie import App
+import orjson
+import uvicorn
+
+DB_NAME = input('Enter database name: ')
+db = AsyncPickleDB(DB_NAME)
+
+
+class Root(App):
-app = Flask(__name__)
-db = PickleDB('api.db')
+ async def set(self, key, value):
+ await db.aset(key, value)
+ return orjson.dumps({key: value})
[email protected]('/set', methods=['POST'])
-def set_value():
- data = request.json
- db.set(data['key'], data['value'])
- db.save()
- return jsonify({"message": "Value saved!"})
+ async def get(self, key):
+ value = await db.aget(key)
+ return orjson.dumps({key: value})
[email protected]('/get/<key>', methods=['GET'])
-def get_value(key):
- value = db.get(key)
- return jsonify({"value": value})
+ async def remove(self, key):
+ await db.aremove(key)
+ return orjson.dumps({'action': 'removed'})
+
+ async def purge(self):
+ await db.apurge()
+ return orjson.dumps({'action': 'purge'})
+
+ async def all(self):
+ return orjson.dumps(await db.aall())
+
+ async def save(self):
+ await db.asave()
+ return orjson.dumps({'action': 'save'})
+
+
+app = Root()
-if __name__ == '__main__':
- app.run(debug=True)
+if __name__ == "__main__":
+ uvicorn.run(app, host="127.0.0.1", port=5272)
```
### Key Pattern Matching