2012-09-11 15 views

Respuesta

8

No lo he usado, pero parece que Flask Debug-toolbar puede ayudar con esto.

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

Es un puerto del django-debug-barra de herramientas, que se puede utilizar para crear perfiles de consultas. La documentación de Flask Debug-toolbar no lo menciona, pero hay código para SQLAlchemyDebugPanel.
Así que creo que valdría la pena echarle un vistazo al proyecto y ver si hace lo que necesita.

+2

Funciona. Todo lo que necesita es tener sqlalchemy configurado con la extensión sql alquimia y la barra de herramientas de depuración lo recogerá. gracias – applechief

+1

Si desea hacer algo más con las consultas, al llamar a str() en un objeto de consulta le dará una representación de cadena de la consulta que puede hacer lo que quiera. Es probable que no contenga los valores parametrizados, pero podrá ver la estructura de la consulta. – aezell

3

La otra respuesta solo funciona con flask_sqlalchemy, no flask y sqlalchemy.

Si desea utilizar nativa SQLAlchemy, se puede hacer esto como una solución rápida: 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 explicar/seleccionar los puntos finales no funcionan sin efectuar sus conexiones en su proyecto de forma manual, pero por lo al menos su depurador de consultas (recuento y sql) funciona. Estaba tratando de entender qué tipo de consultas estaba formando mi alquimia, y lo entendí.

+0

tenga en cuenta que esto todavía requiere la instalación de la extensión Flask-SQLAlchemy, ya que utiliza varios métodos de la misma. –

4

Última respuesta, pero al establecer "echo = True" en su sqlalchemy create_engine se registrarán las consultas ejecutadas y la hora.

48

Si está utilizando la extensión Flask y no quiere molestarse con create_engine, puede establecer la clave de configuración SQLALCHEMY_ECHO=True.

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

+0

+1: respuesta simple y limpia para generar las cadenas de consulta. Gracias. – tatlar

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

Además de la respuesta por Cawb07, que lo resolvió para mí, estar seguro de tener DEBUG_TB_INTERCEPT_REDIRECTS conjunto a True cuando realiza una consulta antes de los redireccionamientos.

Cuestiones relacionadas