web2py:Dove dovrei archiviare i file privati specifici dell'applicazione?
Domanda
Ho appena iniziato a lavorare su web2py.Personalmente, lo trovo più facile da imparare rispetto a Django.
La mia domanda è che devo caricare un file all'avvio dell'applicazione.È una tabella hash in salamoia.Dove dovrei memorizzare questo file in modo che il sistema sia in grado di vederlo
Il mio codice è:
import cPickle as pickle
def index():
"""
Load the file into memory and message the number of entries
"""
f = open('tables.pkl','rb')
session.tables = pickle.load(f)
f.close()
terms = len(session.tables.keys())
message = 'The total entries in table = ' + str(terms)
return dict(message=message)
Come puoi vedere, ho inserito il codice in index() per caricarlo all'avvio.Al momento sto utilizzando il percorso assoluto fino alla posizione fisica del file "tables.pkl".Dove dovrei inserirlo nella cartella dell'applicazione.
Inoltre, desidero che la variabile delle tabelle sia disponibile per tutte le funzioni nel controller.session.tables è la strada giusta da percorrere?È solo un'app di ricerca, quindi non è previsto l'accesso dell'utente.La tabella deve essere caricata una sola volta per tutti gli utenti che accedono alla pagina.Grazie.
Soluzione
Penso che la privato sarebbe un buon posto per questo.Puoi ottenere il percorso assoluto con:
import os
fp = os.path.join(request.folder,'private','tables.pkl')
io userei cache invece della sessione se il file non è univoco per utente.