2010-12-03 9 views
1

Ich entwickle ein CLI für einen Web-Todolist-Dienst. Ich bin fertig mit dem Backend und habe gerade angefangen, die CLI-Funktionen zu schreiben. Bevor ich anfing, habe ich mir überlegt, wie man Benutzerdaten am besten speichert. Ich verwende ConfigParser zum Speichern von benutzerdefinierten Präferenzen. Diese sind in ~/.confrc gespeichert.Sollen Benutzerdaten in einer Konfigurationsdatei gespeichert werden?

Die Benutzerdaten sind in Form von Json. Ich verwende Python für mein Projekt. Ich erhalte diese in Form von:

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

Sollte ich diese Daten in einer Konfigurationsdatei speichern, die über ConfigParser proccessed wird? Dies mag zunächst eine gute Idee sein, aber ein Projekt könnte einen Namen haben, der von einem anderen Projekt verwendet wird. Daher kann ich sie nicht über RawConfigParser.set() speichern. Ich könnte sie über die ID speichern, da sie eindeutig sind, aber dann wäre die conf-Datei selbst sehr unordentlich.

Was wäre der beste Weg, um eine einfache Todolist Benutzerdaten zu speichern?

+3

'.confrc' ist nur der schlechteste Name für eine Konfigurationsdatei. Wünschen Sie eine Konfigurationsdatei pro Benutzer? Pro Projekt? Muss der Benutzer in einem Verzeichnis sein, um diese Dateien zu verwenden? –

+1

Confrc ist nur ein Beispiel, es ist nicht der echte Dateiname. Es wird einen Benutzer und eine einzige Datei geben. Es gibt mehrere Projekte, die zu einem Benutzer gehören. Ich beabsichtige, zwei Dateien zu haben. Einer wird für App-Präferenzen und eine Datei zum Speichern von Daten verwendet. Der Benutzer kann überall sein, aber die Dateien werden im Home-Verzeichnis gespeichert. –

Antwort

4

Wenn nur eine Datei gespeichert werden soll, ist die Verwendung von ~/.${PROJECT}rc eine gute Idee, andernfalls verwenden Sie ein separates Verzeichnis ~/.${PROJECT}.

Sie könnten sich auch auf die XDG Base Directory Specification beziehen.

+0

Dies ist ein guter einfacher Vorschlag. Ein zusätzlicher Sicherheitshinweis: Denken Sie daran, die entsprechenden Versionsnummern in die Konfigurationsdateien einzutragen. Dies ermöglicht Ihnen eine gewisse Flexibilität, um die Konfigurationsdarstellungen bei der Entwicklung des Projekts zu ändern. – mjhm

+0

Danke für den Link, ich werde es untersuchen. –

Verwandte Themen