2010-12-03 7 views
1

Je développe un CLI pour un service todolist web. J'en ai terminé avec le backend et j'ai juste commencé à écrire les fonctions CLI. Avant de commencer, je me suis demandé quel était le meilleur moyen de stocker les données utilisateur. J'utilise ConfigParser pour stocker les préférences définies par l'utilisateur. Ceux-ci sont stockés dans ~/.confrc.Les données utilisateur doivent-elles être stockées dans un fichier de configuration?

Les données utilisateur sont sous la forme de Json. J'utilise Python pour mon projet. Je reçois ces sous la forme de:

{"user_id": 1, "name": "Project_name", "color": "#ff8581", "collapsed": 0, "item_order": 1, "cache_count": 13, "indent": 1, "id": 455831} 

Dois-je stocker ces données dans un fichier de configuration, qui sera proccessed via ConfigParser? Cela peut être une bonne idée au début, mais un projet peut avoir un nom qui est utilisé par un autre projet. Donc je ne peux pas les stocker via RawConfigParser.set(). Je pourrais les stocker via l'id, car ils sont uniques, mais que le fichier conf lui-même serait très encombré.

Quel serait le meilleur moyen de stocker des données utilisateur todolist simples?

+3

'.confrc' est à peu près le pire nom jamais donné pour un fichier de configuration. Voulez-vous un fichier de configuration par utilisateur? Par projet? L'utilisateur doit-il être dans un répertoire pour utiliser ces fichiers? –

+1

Confrc est juste un exemple, ce n'est pas le vrai nom de fichier. Il y aura un utilisateur et un fichier unique. Plusieurs projets appartiennent à un utilisateur. J'ai l'intention d'avoir deux fichiers. L'un est utilisé pour les préférences d'application et un fichier pour enregistrer les données. L'utilisateur peut être n'importe où, mais les fichiers sont stockés dans le répertoire principal. –

Répondre

4

S'il n'y a qu'un seul fichier à stocker, utiliser ~/.${PROJECT}rc est une bonne idée, sinon, utilisez un répertoire séparé ~/.${PROJECT}. Vous pouvez également vous référer à XDG Base Directory Specification.

+0

Ceci est une bonne suggestion simple. Un conseil de sécurité supplémentaire: N'oubliez pas de mettre les informations de numéro de version appropriées dans les fichiers de configuration. Cela vous permettra d'avoir une certaine flexibilité pour modifier les représentations de configuration à mesure que le projet évolue. – mjhm

+0

Merci pour le lien, je vais l'examiner. –