2012-09-11 46 views

Trả lời

8

Tôi chưa tự sử dụng nó, nhưng có vẻ như Flask Debug-toolbar có thể trợ giúp việc này.

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

Đó là một cảng django-debug-thanh công cụ, có thể được sử dụng cho profiling truy vấn. Tài liệu của Flask Debug-toolbar không đề cập đến nó, nhưng có mã cho SQLAlchemyDebugPanel.
Vì vậy, tôi nghĩ rằng nó có thể là giá trị để có một cái nhìn tại dự án, và xem nếu nó làm những gì bạn cần.

+2

Nó hoạt động. Tất cả bạn cần là có sqlalchemy thiết lập với phần mở rộng giả kim thuật sql và thanh công cụ gỡ lỗi sẽ nhặt nó lên. thanks – applechief

+1

Nếu bạn muốn làm điều gì đó khác với các truy vấn, gọi str() trên một đối tượng truy vấn sẽ cung cấp cho bạn một chuỗi đại diện của truy vấn mà bạn có thể làm bất cứ điều gì bạn muốn. Nó có khả năng sẽ không chứa các giá trị được tham số hóa, nhưng bạn sẽ có thể thấy cấu trúc truy vấn. – aezell

3

Câu trả lời khác chỉ hoạt động với flask_sqlalchemy, không phải flasksqlalchemy.

Nếu bạn muốn sử dụng bản địa SQLAlchemy, bạn có thể làm điều này sửa chữa gấp gáp: 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! 

Các giải thích/chọn điểm cuối không làm việc mà không cần dây chúng vào dự án của bạn bằng tay, nhưng đồng rất ít nhất trình gỡ lỗi truy vấn của bạn (đếm và sql) hoạt động. Tôi đã cố gắng hiểu loại truy vấn giả kim của tôi đang hình thành, và tôi hiểu rồi.

+0

xin lưu ý rằng điều này vẫn yêu cầu cài đặt phần mở rộng Flask-SQLAlchemy, vì nó sử dụng các phương thức máy chủ từ nó. –

4

Trả lời muộn nhưng thiết lập "echo = True" trong sqlalchemy create_engine của bạn sẽ ghi lại các truy vấn được thực thi và thời gian.

48

Nếu bạn đang sử dụng tiện ích Flask và không muốn bận tâm với create_engine, bạn có thể đặt khóa cấu hình SQLALCHEMY_ECHO=True.

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

+0

+1: Câu trả lời đơn giản, gọn gàng để xuất chuỗi truy vấn. Cảm ơn. – tatlar

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

Ngoài các câu trả lời bằng Cawb07, mà giải quyết nó cho tôi, hãy chắc chắn bạn có DEBUG_TB_INTERCEPT_REDIRECTS bộ thành True khi bạn đang truy vấn trước khi chuyển hướng.

Các vấn đề liên quan