Note
Nous venons d'ajouter de nouvelles fonctionnalités géniales à LiteJsonDb
pour rendre votre codage encore plus fluide. Pour un aperçu rapide et des exemples, consultez notre wiki pour tous les détails.
Salut ! Bienvenue sur LiteJsonDb, votre base de données conviviale et légère basée sur JSON. Elle est simple et dotée de fonctionnalités telles que le chiffrement, les sauvegardes et une gestion solide des erreurs, le tout sans les aspects contraignants.
Avouons-le : parfois, vous n'avez pas besoin d'une configuration de base de données complexe. Peut-être que vous construisez un petit projet, un prototype rapide, ou que vous voulez simplement une façon simple de stocker et de récupérer des données JSON. LiteJsonDb est là pour ces moments-là. C'est simple, efficace, et ça fait le travail sans chichis.
- Gestion facile des données : Ajoutez, modifiez, récupérez et supprimez des données avec seulement quelques lignes de code.
- Chiffrement des données : Gardez vos données en sécurité grâce au chiffrement optionnel.
- Sauvegarde et restauration : Sauvegardes automatiques pour garder vos données en sécurité.
- Sous-collections : Organisez vos données dans des structures imbriquées et ordonnées.
- Gestion conviviale des erreurs : Messages d'erreur colorés et utiles pour vous guider.
Note
LiteJsonDb rend la gestion des données JSON simple et agréable. Que vous construisiez une petite application ou que vous ayez simplement besoin d'une solution de stockage de données légère, LiteJsonDb est là pour vous. Profitez-en !
Commencer est super facile. Il suffit d'installer le package via pip et vous êtes prêt à partir :
pip install litejsondb
Une nouvelle version est disponible, tapez pip install --upgrade litejsondb
pour mettre à jour
Tout d'abord, importez la classe JsonDB
et initialisez votre base de données :
import LiteJsonDb
# Initialiser la base de données avec le chiffrement activé
db = LiteJsonDb.JsonDB() # Certains paramètres peuvent être passés ici
Cliquez pour voir le code et l'aperçu des paramètres
Activez la journalisation pour suivre toutes les opérations de la base de données. Ceci est utile pour le débogage ou la surveillance des activités :
db = LiteJsonDb.JsonDB(enable_log=True)
Évitez de perdre vos données en activant les sauvegardes automatiques. Un fichier de sauvegarde est créé chaque fois que vous enregistrez des modifications :
db = LiteJsonDb.JsonDB(auto_backup=True)
Par défaut, si vous passez crypted
à True
, il utilisera le système de chiffrement minimal (Base64)
db = LiteJsonDb.JsonDB(crypted=True)
Sécurisez vos données avec le chiffrement Fernet
db = LiteJsonDb.JsonDB(crypted=True, encryption_method="fernet", encryption_key="votre-clé-secrète")
Si aucune clé n'est fournie, le système générera une erreur pour garantir la sécurité de vos données.
Combinez la journalisation, les sauvegardes automatiques et le chiffrement en un seul flux de travail :
Cliquez pour voir le code
import LiteJsonDb
# Initialiser la base de données avec la journalisation, la sauvegarde automatique et le chiffrement
db = LiteJsonDb.JsonDB(
enable_log=True,
auto_backup=True,
crypted=True,
encryption_method="fernet",
encryption_key="ma-clé-sécurisée"
)
L'ajout de données est un jeu d'enfant. Utilisez simplement la méthode set_data
. Si la clé existe déjà, vous recevrez un rappel amical pour utiliser edit_data
à la place.
# Définir les données sans données supplémentaires
db.set_data("posts")
# Définir les données avec des données supplémentaires
db.set_data("users/1", {"name": "Aliou", "age": 20})
db.set_data("users/2", {"name": "Coder", "age": 25})
Besoin de mettre à jour des données ? Pas de problème. Utilisez la méthode edit_data
. Elle fusionne les nouvelles données avec les données existantes, pour que rien ne soit perdu.
# Modifier les données
db.edit_data("users/1", {"name": "Alex"})
La récupération des données est on ne peut plus simple. Utilisez la méthode get_data
.
# Obtenir les données
print(db.get_data("users/1")) # Sortie: {'name': 'Alex', 'age': 20}
print(db.get_data("users/2")) # Sortie: {'name': 'Coder', 'age': 25}
Tip
Vous pouvez accéder directement à des données spécifiques en utilisant des chemins dans la méthode get_data
. Par exemple, pour obtenir uniquement le nom de l'utilisateur, vous pouvez faire :
print(db.get_data("users/1/name"))
Ici, vous obtenez le nom de l'utilisateur sans récupérer les autres parties des données.
Besoin de supprimer quelque chose ? La méthode remove_data
est là pour vous.
# Supprimer les données
db.remove_data("users/2")
Vous voulez tout voir ? Utilisez la méthode get_db
. Définissez raw=True
si vous voulez les données dans un format lisible.
# Obtenir la base de données complète
print(db.get_db(raw=True))
Cette nouvelle fonctionnalité a été intégrée en réponse à la question soulevée concernant l'amélioration des capacités de recherche de données. Cette fonction vous permet de rechercher des valeurs dans votre base de données, soit dans l'ensemble de la base de données, soit dans une clé spécifique. Cette amélioration rend la recherche de vos données beaucoup plus facile et efficace.
La fonction search_data
offre deux modes de recherche principaux :
- Recherche de base : Recherche une valeur n'importe où dans la base de données.
- Recherche spécifique à une clé : Recherche une valeur dans une clé spécifique.
-
Utiliser la fonction
search_data
Voici comment vous pouvez utiliser la fonction
search_data
:-
Recherche de base : Pour rechercher une valeur dans l'ensemble de la base de données, utilisez le code suivant :
results = db.search_data("Aliou") print(results)
Ceci recherchera la valeur
"Aliou"
dans toutes les clés de votre base de données. -
Recherche spécifique à une clé : Pour rechercher une valeur dans une clé spécifique, utilisez le code suivant :
results = db.search_data("Aliou", key="users") print(results)
Ceci recherchera la valeur
"Aliou"
spécifiquement dans la clé"users"
.
-
Cette fonctionnalité a été intégrée pour vous aider à sauvegarder facilement vos fichiers, tels que votre base de données, directement dans une conversation Telegram. En utilisant cette méthode, vous pouvez sauvegarder en toute sécurité les fichiers importants automatiquement dans une conversation Telegram.
La fonction backup_to_telegram
vous permet de sauvegarder n'importe quel fichier sur Telegram via un bot. Vous aurez besoin de deux informations essentielles : le token du bot et l'identifiant de la conversation où le fichier sera envoyé.
-
Obtenir votre token de bot Telegram Pour utiliser cette fonctionnalité, vous devez d'abord créer un bot sur Telegram en utilisant @BotFather. Une fois que votre bot est créé, BotFather vous fournira un token que vous utiliserez pour l'authentification.
-
Trouver votre identifiant de conversation Vous pouvez obtenir votre identifiant de conversation en utilisant @MissRose_bot et en tapant
/id
. Il vous donnera votre identifiant de conversation unique. -
Utiliser la fonction
backup_to_telegram
Voici comment utiliser la fonctionbackup_to_telegram
:python db.backup_to_telegram("votre_token", "votre_identifiant_de_conversation")
Ceci enverra le fichier de sauvegarde à l'identifiant de conversation spécifié en utilisant votre bot Telegram.
Cette fonctionnalité a été intégrée pour vous permettre d'exporter facilement vos données au format CSV. Cela facilite le partage et l'analyse de vos données en dehors de l'application en créant des fichiers CSV qui peuvent être ouverts avec des tableurs comme Excel ou Google Sheets.
La méthode export_to_csv
vous permet d'exporter soit une collection spécifique, soit l'ensemble de la base de données. Voici comment l'utiliser :
-
Préparer vos données Assurez-vous que les données que vous souhaitez exporter sont bien structurées. Vous pouvez avoir vos données sous forme de dictionnaires ou de listes de dictionnaires. Par exemple :
# Ajouter des données d'exemple db.set_data("users", { "1": {"name": "Aliou", "age": 20}, "2": {"name": "Coder", "age": 25} })
-
Utiliser la méthode
export_to_csv
Voici comment appeler la méthode pour exporter les données :Pour exporter une collection spécifique, vous devez fournir la clé correspondante :
# Exporter une collection spécifique db.export_to_csv("users")
Si vous souhaitez exporter toutes les données de la base de données, vous pouvez appeler la méthode sans paramètres :
# Exporter l'ensemble de la base de données db.export_to_csv()
Cette fonctionnalité est expérimentale et peut ne pas prendre en charge tous les formats de données. Si vous essayez d'exporter une collection qui n'existe pas, un message d'erreur s'affichera :
Si vous recevez des erreurs comme celle-ci : Oups ! Une erreur s'est produite lors de l'exportation CSV : ...
, nous vous recommandons d'ouvrir une issue dans notre dépôt afin que nous puissions y remédier. Vos commentaires sont précieux, et nous apprécions votre patience alors que nous continuons à améliorer cette fonctionnalité !
Dans LiteJsonDb, les sous-collections sont un moyen d'organiser vos données de manière hiérarchique. Considérez-les comme des structures imbriquées qui vous permettent de regrouper les données associées sous une clé parent. Cette fonctionnalité est particulièrement utile lorsque vous souhaitez gérer des relations de données complexes sans perdre la simplicité du JSON.
Les sous-collections sont essentiellement des collections au sein de collections. Par exemple, si vous avez une collection principale d'utilisateurs, vous pouvez organiser leurs publications dans des sous-collections distinctes. Voici comment vous pouvez travailler avec elles :
- Définition des données de sous-collection : Créez et remplissez une sous-collection sous une clé parent spécifiée.
- Modification des données de sous-collection : Mettez à jour les éléments existants dans une sous-collection.
- Obtention des données de sous-collection : Récupérez les données stockées dans une sous-collection.
- Suppression des données de sous-collection : Supprimez les éléments ou des sous-collections entières.
L'utilisation de sous-collections vous aide à maintenir une structure claire dans vos données, ce qui facilite leur gestion et leur interrogation.
Organisez vos données avec des sous-collections. Facile comme bonjour.
# Définir les données de sous-collection
db.set_subcollection("groups", "1", {"name": "Admins"})
Modifier des éléments dans une sous-collection ? Pas de problème.
# Modifier les données de sous-collection
db.edit_subcollection("groups", "1", {"description": "Groupe d'administrateurs"})
Besoin de récupérer des sous-collections ou des éléments spécifiques ? On s'en occupe.
# Obtenir les données de sous-collection
print(db.get_subcollection("groups"))
# Obtenir un élément personnalisé des données de sous-collection
print(db.get_subcollection("groups", "1"))
La suppression d'éléments de sous-collections est tout aussi simple.
# Supprimer les données de sous-collection
db.remove_subcollection("groups", "1")
LiteJsonDb est là pour vous aider. Voici quelques messages d'erreur colorés et conviviaux pour vous guider :
- La clé existe : Si vous essayez de définir des données avec une clé existante, il vous suggérera d'utiliser
edit_data
. - La clé n'a pas été trouvée : Si une clé n'existe pas lorsque vous essayez d'obtenir ou de supprimer des données, il vous avertira avec un conseil sur la façon de procéder.
- Problèmes de fichiers : S'il y a des problèmes de permissions de fichiers, il vous guidera sur la façon de les résoudre.
Voici à quoi pourrait ressembler votre projet si vous initialisez LiteJssonDb
:
projet/
│
├── base_de_données/
│ ├── db.json
│ ├── db_backup.json
│ └── LiteJsonDb.log
└── votre_code.py
Mettons tout cela ensemble avec un exemple de fichier main.py
:
import LiteJsonDb
# Initialiser la base de données avec le chiffrement activé
db = LiteJsonDb.JsonDB()
# Ajouter des données initiales
# Définir les données sans données supplémentaires
db.set_data("posts")
# Définir les données avec des données supplémentaires
db.set_data("users/1", {"name": "Aliou", "age": 20})
db.set_data("users/2", {"name": "Coder", "age": 25})
# Modifier les données existantes
db.edit_data("users/1", {"name": "Alex"})
# Récupérer et afficher les données
print(db.get_data("users/1"))
print(db.get_data("users/2"))
# Supprimer les données
db.remove_data("users/2")
# Effectuer une recherche de base
results = db.search_data("Aliou")
print("Résultats de la recherche de base:", results)
# Effectuer une recherche spécifique à une clé
results = db.search_data("Aliou", key="users")
print("Résultats de la recherche spécifique à une clé:", results)
# Récupérer la base de données complète
print(db.get_db(raw=True))
# Travailler avec des sous-collections
db.set_subcollection("groups", "1", {"name": "Admins"})
db.edit_subcollection("groups", "1", {"description": "Groupe d'administrateurs"})
print(db.get_subcollection("groups"))
db.remove_subcollection("groups", "1")
# SI VOUS VOULEZ SAUVEGARDER LA BASE DE DONNÉES SUR TELEGRAM
# db.backup_to_telegram("votre_token", "votre_identifiant_de_conversation")
""" SI VOUS VOULEZ EXPORTER VOS DONNÉES AU FORMAT CSV
# Exporter une collection spécifique
db.export_to_csv("users")
# Exporter l'ensemble de la base de données
db.export_to_csv()
"""
Cliquez pour développer
La méthode set_data
est utilisée pour ajouter ou mettre à jour des données à un chemin spécifique. Si la clé existe déjà, vous devrez utiliser edit_data
pour la modifier. Cette méthode est idéale pour les paires clé-valeur simples ou les structures de données directes.
# Définir les données
db.set_data("users/1", {"name": "Aliou", "age": 20})
Les sous-collections, d'autre part, sont utilisées pour créer et gérer des structures imbriquées dans votre base de données. Elles vous permettent de regrouper les données associées sous une clé parent, offrant ainsi une manière plus organisée de gérer les relations complexes. Les sous-collections sont essentiellement des collections au sein de collections.
# Définir les données de sous-collection
db.set_subcollection("groups", "1", {"name": "Admins"})
- Structure :
set_data
est utilisé pour les structures de données plates, tandis que les sous-collections permettent une organisation hiérarchique. - Utilisation : Utilisez
set_data
pour les paires clé-valeur simples etset_subcollection
lorsque vous avez besoin de collections imbriquées. - Organisation : Les sous-collections aident à maintenir une structure claire et à regrouper les données associées, ce qui facilite la gestion et l'interrogation des relations complexes.
En comprenant ces différences, vous pouvez choisir la méthode appropriée pour vos besoins de gestion de données, en assurant une base de données bien organisée et efficace.
Nous nous efforçons toujours d'améliorer LiteJsonDb. Voici ce que nous avons en vue :
- Ajouter la prise en charge du chiffrement des données pour sécuriser le contenu JSON.
- Mettre en œuvre des sauvegardes automatiques pour assurer la sécurité des données.
- Améliorer la gestion des erreurs avec des messages conviviaux et colorés.
- Ajout de la documentation en français
- Mettre en œuvre des sauvegardes automatisées pour envoyer les données à un bot Telegram.
- Corriger tous les bugs découverts pour assurer un fonctionnement sans heurts.
- Atteindre 100 étoiles sur GitHub et célébrer cela en ajoutant d'autres fonctionnalités impressionnantes !
Nous accueillons les contributions, les suggestions et les commentaires pour rendre LiteJsonDb encore meilleur ! Si vous avez des idées d'améliorations ou si vous voulez corriger un bug, n'hésitez pas à :
- Soumettre une demande d'extraction (PR) : Contribuez de nouvelles fonctionnalités ou des corrections de bugs en créant une demande d'extraction. Vos modifications aideront à améliorer LiteJsonDb pour tout le monde !
- Signaler les problèmes : Si vous rencontrez des bugs ou des problèmes, veuillez ouvrir un problème dans le dépôt. Fournissez autant de détails que possible afin que nous puissions y remédier rapidement.
- Suggérer des fonctionnalités : Vous avez une idée pour une nouvelle fonctionnalité ? Faites-le nous savoir ! Nous sommes toujours ouverts aux suggestions sur la façon d'améliorer LiteJsonDb.
Vos commentaires et contributions sont grandement appréciés et nous aident à maintenir la croissance et l'amélioration de LiteJsonDb.
LiteJsonDb est une œuvre d'amour, et votre soutien peut faire une grande différence ! Si vous appréciez le projet et que vous voulez montrer votre gratitude, voici quelques façons dont vous pouvez aider :
L'une des meilleures façons de soutenir LiteJsonDb est de forker le dépôt et de lui donner une étoile sur GitHub. C'est comme un high-five virtuel et cela nous aide à faire connaître le projet. De plus, cela nous montre que vous appréciez le travail que nous faisons !
Si vous vous sentez particulièrement généreux et que vous souhaitez contribuer financièrement, nous vous en serions incroyablement reconnaissants. Les dons nous aident à couvrir les coûts et à assurer le bon fonctionnement du projet. Vous pouvez nous soutenir des manières suivantes :
- PayPal : Envoyez un don directement à mon compte PayPal. Chaque petite contribution aide et est grandement appréciée !
- Bitcoin : Vous préférez les cryptomonnaies ? Vous pouvez également faire un don en utilisant Bitcoin à l'adresse suivante :
1Nn15EttfT2dVBisj8bXCnBiXjcqk1ehWR
.
Votre soutien, que ce soit par une étoile, un fork ou un don, contribue à maintenir LiteJsonDb vivant et florissant. Merci d'être génial !
Bon code et bonne continuation ! 🚀