LightDB¶
What is this?¶
LightDB is a simple and lightweight JSON database for Python that allows users to efficiently write data to a file. It is designed to be easy to use, making it a great choice for developers who need a fast and reliable way to store and retrieve data
Features¶
Lightweight and Simple: LightDB is a lightweight database implemented as a Python dictionary with an intuitive API for easy key-value management
JSON Storage and Persistence: Data is stored and retained in a JSON file, allowing easy external editing and persistence between runs
Reset Capability: Provides a reset method to clear the database and start fresh
Type Agnostic: Can store any Python object as a value
Portable: Easily transferable between systems, ideal for simple data storage
Model Support: Supports models for structured data management, ensuring organized and maintainable code
Simple usage¶
from lightdb import LightDB
# Create a new database object, or load an existing one from file
db = LightDB("db.json")
# Set a key-value pair
db.set("name", "Alice")
# Get the value associated with a key
name = db.get("name")
print(name) # Output: "Alice"
# Remove a key-value pair from the database
db.pop("name")
# Reset the database to an empty state
db.reset()
# After this, you need to save changes
db.save()
Models usage¶
from lightdb import LightDB
from lightdb.models import Model
from typing import List, Dict, Any
# Initialize the database
db = LightDB("db.json")
# Define a User model
class User(Model, table="users"):
name: str
age: int
items: List[str] = []
extra: Dict[str, Any] = {}
# Create a new user
user = User.create(name="Alice", age=30)
print(f"Created User: {user}")
# Retrieve the user
retrieved_user = User.get(name="Alice")
if retrieved_user:
print(f"Retrieved User: {retrieved_user.name}, Age: {retrieved_user.age}")
# Update the user's name
retrieved_user.name = "Kristy"
retrieved_user.save()
print(f"Updated User: {retrieved_user}")
# Filter users by age
users_over_20 = User.filter(User.age >= 20)
print("Users over 20:")
for user in users_over_20:
print(f"Name: {user.name}, Age: {user.age}")
# Delete the user
retrieved_user.delete()
print(f"Deleted User: {retrieved_user.name}")
# Verify deletion
deleted_user = User.get(name="Kristy")
print(f"User exists after deletion: {deleted_user is not None}")