2012-09-11 16 views

risposta

8

Non l'ho usato da solo, ma sembra che Flask Debug-toolbar possa aiutare con questo.

https://github.com/mgood/flask-debugtoolbar

Si tratta di un porting del django-debug-barra degli strumenti, che può essere utilizzato per la profilazione query. La documentazione di Flask Debug-toolbar non lo menziona, ma esiste un codice per SQLAlchemyDebugPanel.
Quindi penso che valga la pena dare un'occhiata al progetto e vedere se fa quello che ti serve.

+2

Funziona. Tutto ciò che serve è avere sqlalchemy configurato con l'estensione sql alchimia e la barra degli strumenti di debug lo raccoglierà. grazie – applechief

+1

Se vuoi fare qualcos'altro con le query, chiamare str() su un oggetto query ti darà una rappresentazione di stringa della query che puoi fare quello che vuoi. Probabilmente non conterrà i valori parametrizzati, ma sarai in grado di vedere la struttura della query. – aezell

3

L'altra risposta funziona solo con flask_sqlalchemy, non flask e sqlalchemy.

Se si desidera utilizzare nativo SQLAlchemy, si può fare questo come una soluzione rapida: http://yuji.wordpress.com/2014/01/07/use-native-sqlalchemy-in-flask-debugtoolbar/

from flask.ext.sqlalchemy import _EngineDebuggingSignalEvents 
_EngineDebuggingSignalEvents(engine, app.import_name).register() 
# use at your own risk! a development environment shouldn't really care though! 

La spiegare/selezionare gli endpoint non funzionano senza di loro il cablaggio nel progetto manualmente, ma per lo almeno il tuo debugger di query (count e sql) funziona. Stavo cercando di capire che tipo di domande la mia alchimia stava formando, e l'ho capito.

+0

Si noti che questo richiede ancora l'installazione dell'estensione Flask-SQLAlchemy, poiché utilizza metodi serveral da esso. –

4

Risposta in ritardo ma l'impostazione "echo = True" nella sqlalchemy create_engine registrerà le query eseguite e l'ora.

48

Se si utilizza l'estensione Flask e non si vuole disturbare con create_engine, è possibile impostare la chiave di configurazione SQLALCHEMY_ECHO=True.

http://flask-sqlalchemy.pocoo.org/2.1/config/

+0

+1: risposta semplice e pulita per l'output delle stringhe di query. Grazie. – tatlar

21
app.config['SQLALCHEMY_ECHO'] = True 
0

Oltre alla risposta da Cawb07, che ha risolto per me, essere sicuri di avere DEBUG_TB_INTERCEPT_REDIRECTS set True quando stai interrogando prima dei reindirizzamenti.

Problemi correlati