web2py:Dove dovrei archiviare i file privati ​​specifici dell'applicazione?

StackOverflow https://stackoverflow.com/questions/4004794

  •  25-09-2019
  •  | 
  •  

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.

È stato utile?

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.

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