Sto utilizzando Flask per il mio server wsgi python e sqlalchemy per tutti i miei accessi al database.utilizzo di flask-sqlalchemy senza la base dichiarativa sottoclasse
io penso Vorrei utilizzare l'estensione Flask-SQLAlchemy nella mia richiesta, ma non voglio usare la classe di base dichiarativa (db.Model), invece, voglio usare la base da SQLAlchemy. ext.declarative.
Ciò vanifica l'intero scopo dell'utilizzo dell'estensione?
mio caso d'uso:
vorrei l'estensione per aiutarmi a gestire sessioni/motori un po 'meglio, ma vorrei gestire tutti i modelli separatamente.
In realtà non mi dispiacerebbe usare l'estensione, ma voglio scrivere modelli rigidi. Sto effettuando il porting del codice da un'applicazione non-flask e sposterò le modifiche su quel progetto mentre procedo. Se fiasco-sqlalchemy mi consente di imbrogliare il Table metadata per esempio, questo causerà problemi quando il codice viene respinto. Ci sono anche porzioni del mio codice che fanno un sacco di controllo del tipo (identità polimorfiche), e ricordo anche di aver letto che il controllo del tipo su Tabella non è raccomandato quando si usa l'estensione.
La sessione/bit del motore ha aiutato a illustrare la risposta. Quindi, nella mia app, ho bisogno di passare la sessione per l'utilizzo. Devo pulire la sessione in qualsiasi modo dopo ogni utilizzo? (Forse usando ** app.do_teardown_xxx **?) – user2097818
Con autoflush = True param in sessionmaker non è necessaria alcuna pulizia. utente = Utente (email = "[email protected]") session.add (utente) session.commit() –
Non ho intenzione di eseguirlo su più thread, ma avrò moduli discreti ognuno utilizza la propria nuova sessione. Sto pensando di passare il sessionmaker. Quei moduli faranno aggiornamenti progressivi. Dopo aver commesso ogni istanza di sessione, dovrebbero esserci motivi per preoccuparsi dell'integrità dei dati? (supponendo che i miei commit non si sovrappongano). – user2097818