ciao,
qualcuno di voi ha sviluppato progetti con flask? comunque questa e’ la mia 
domanda:

Ho impostato in un file config.py la configurazione con db multipli sqlite (e’ 
una semplice applicazione CRUD):
SQLALCHEMY_DATABASE_URI = os.environ.get('DATABASE_URL') or 'sqlite:///' + 
os.path.join(basedir, 'master.db')
SQLALCHEMY_BINDS = {
    'project0':        'sqlite:///' + os.path.join(basedir, 'project0.db')
    'project1':        'sqlite:///' + os.path.join(basedir, 'project1.db')
    'project2':        'sqlite:///' + os.path.join(basedir, 'project2.db')

    }
In pratica voglio avere un db master con utenti e progetti, e un login durante 
il quale l utente sceglie il progetto (project0, project1 ecc.). Questi 
database di progetto sono identici nella struttura (stesse tabelle).

Ho capito che usando la variable __bind_key__ posso puntare ad uno dei bind 
definiti in config.py
Mi chiedevo se fosse possibile passare la scelta come variabile alla classe dei 
modelli contenuti in models.py di flask:
class Project(db.Model,choice):
    __bind_key__ = choice
Finora ho solo appurato che flask-sqlalchemy inizializza un oggetto db partendo 
dai dati di configurazione che gli ho passato in config.py

app.config.from_object(Config)
db = SQLAlchemy(app)
Non riesco ancora a trovare un modo per definire questa scelta e passarla alla 
classe di cui sopra. Infatti la classe Project viene inclusa nel file routes.py 
dove avviene anche di fatto il meccanismo di login.

Forse conviene riorganizzare tutto usando la libreria sqlite3 e scrivendo 
direttamente le query SQL con il db a cui voglio puntare come parametro. Da 
routes.py posso accedere a variabili dell utente loggato, invece non ci riesco 
da models.py, potrebbe essere una soluzione. Fermo restando che con sqlalchemy 
ottengo una scrittura molto piu’ compatta del codice.

marco
_______________________________________________
Python mailing list
Python@lists.python.it
https://lists.python.it/mailman/listinfo/python

Rispondere a