Question

Je suis en train de jouer avec cette idée pendant un certain temps tout à fait maintenant, mais ne l'ai pas vu des informations sur les gens le faire. J'ai un petit projet de site où je dois charger et modifier 1 objet. Cet objet est assez simple, et ne doit pas être plus que quelques kb. Au lieu de courir un DB pour cette petite quantité de données, pourquoi ne pas simplement utiliser pickle et / ou shelve pour enregistrer ces données, et le charger? Je prévois d'utiliser un cadre micro web comme Gourde ou pour le projet.

Y a-t-il des raisons de ne pas utiliser cette méthode pour charger les données? Il ne chargera le fichier cornichon au moment Apache démarre, donc je ne pense pas que la vitesse sera effectuée (plus rapide que l'interrogation d'un db).

Merci pour toute entrée!

Était-ce utile?

La solution

Il n'y a aucune raison pour laquelle vous ne pouvez pas mettre en œuvre la persistance des objets via le standard de Python cornichon ou étagère modules. Assurez-vous que vos objets sont proprement et en toute sécurité picklable. Évolutivité peut devenir un problème si votre site se développe au-delà de votre portée actuelle, mais en attendant votre idée devrait fonctionner très bien. Si ce jour-là, la prochaine étape évidente serait d'envisager d'utiliser l'excellente Python SQLite Module qui vient préemballé avec les versions récentes de la langue

.

Autres conseils

Je ne pas écrire une chaîne marinée dans un fichier directement. Il y a trop de détails de bas niveau à craindre. Consultez Durus , ZODB , ou cette poste de FriendFeed sur le stockage d'objets en python MySQL.

Ne pas jeter les bases de données relationnelles, cependant, ils vous donnent beaucoup de coup droit hors de la boîte (même pour des projets simples).

En plus des problèmes de concurrence que vous êtes déjà au courant, vous devez également vous assurer que le fichier est toujours dans un état cohérent. Par exemple, si le serveur tombe en panne au milieu de l'écriture du fichier, ce qui se passe alors? Il est un cas dont vous avez besoin d'examiner et de mettre en œuvre une solution pour si vous allez dans cette voie.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top