Domanda

Ho accarezzato questa idea per un bel po 'adesso, ma non ho visto alcuna informazione sulle persone farlo. Ho un piccolo progetto di sito web in cui ho bisogno di caricare e modificare 1 oggetto. Questo oggetto è piuttosto semplice, e non dovrebbe essere più di pochi KB. Invece di correre un DB per questa piccola quantità di dati, perché non basta usare pickle e / o shelve per salvare questi dati, e caricarlo? Sto pensando di utilizzare un framework web micro come la bottiglia o Flask per il progetto.

Ci sono ragioni per non utilizzare questo metodo per caricare i dati? Si caricherà solo il file salamoia al momento Apache si avvia, quindi non credo che la velocità sarà effettuato (più veloce di interrogazione di un db).

Grazie per qualsiasi ingresso!

È stato utile?

Soluzione

Non v'è alcun motivo per cui non è possibile implementare la persistenza degli oggetti attraverso la standard di Python pickle o ripiano moduli. Basta fare in modo gli oggetti sono in modo pulito e sicuro serializzabili. Scalabilità può diventare un problema se il vostro sito cresce al di là dell'ambito corrente, ma fino ad allora la vostra idea dovrebbe funzionare bene. Se quel giorno arriverà, l'ovvio passo successivo sarebbe quello di considerare l'utilizzo di Python eccellente SQLite modulo che viene pre-confezionati con le recenti versioni del linguaggio

.

Altri suggerimenti

Non vorrei scrivere una stringa in salamoia per un file direttamente. Ci sono troppi dettagli di basso livello di cui preoccuparsi. Scopri Durus , ZODB , o questo post dal FriendFeed sulla memorizzazione Python oggetti in MySQL.

Do database non relazionali scartare, però, ti danno un sacco di scoppio destra, fuori dalla scatola (anche per progetti semplici).

In aggiunta ai problemi di concorrenza si è già a conoscenza di, è inoltre necessario assicurarsi che il file è sempre in uno stato consistente. Ad esempio, se il server si blocca nel mezzo della scrittura del file, che cosa succede allora? E 'un caso è necessario considerare e implementare una soluzione per se seguire questa strada.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top