Display query/page generation time in debug mode
This commit is contained in:
parent
d8caedd2dd
commit
dd96e7721b
@ -40,6 +40,12 @@
|
|||||||
</nav>
|
</nav>
|
||||||
<div class="container">
|
<div class="container">
|
||||||
{% block content %}{% endblock %}
|
{% block content %}{% endblock %}
|
||||||
|
|
||||||
|
{% if config['DEBUG'] %}
|
||||||
|
<footer class="border-top pt-4 mt-4">
|
||||||
|
<p class="text-muted">Queries executed in {{ dbtime() }} msec. Page generated in __EXECUTION_TIME__ msec.</p>
|
||||||
|
</footer>
|
||||||
|
{% endif %}
|
||||||
</div>
|
</div>
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|
||||||
|
@ -14,16 +14,19 @@
|
|||||||
# You should have received a copy of the GNU Affero General Public License
|
# You should have received a copy of the GNU Affero General Public License
|
||||||
# along with this program. If not, see <https://www.gnu.org/licenses/>.
|
# along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
from flask import Flask
|
from flask import Flask, g
|
||||||
|
from flask_sqlalchemy.record_queries import get_recorded_queries
|
||||||
|
|
||||||
from .database import db
|
from .database import db
|
||||||
from .general_journal.models import GeneralJournalTransaction
|
from .general_journal.models import GeneralJournalTransaction
|
||||||
from .statements.models import StatementLine, StatementLineTransaction
|
from .statements.models import StatementLine, StatementLineTransaction
|
||||||
|
|
||||||
|
import time
|
||||||
|
|
||||||
app = Flask(__name__)
|
app = Flask(__name__)
|
||||||
|
|
||||||
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///drcr.db'
|
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///drcr.db'
|
||||||
app.config['SQLALCHEMY_RECORD_QUERIES'] = True
|
app.config['SQLALCHEMY_RECORD_QUERIES'] = app.debug
|
||||||
db.init_app(app)
|
db.init_app(app)
|
||||||
|
|
||||||
def all_transactions():
|
def all_transactions():
|
||||||
@ -42,6 +45,22 @@ from .statements import views
|
|||||||
def initdb():
|
def initdb():
|
||||||
db.create_all()
|
db.create_all()
|
||||||
|
|
||||||
@app.teardown_appcontext
|
if app.debug:
|
||||||
def shutdown_session(exception=None):
|
@app.before_request
|
||||||
db_session.remove()
|
def before_request():
|
||||||
|
g.start = time.time()
|
||||||
|
|
||||||
|
@app.after_request
|
||||||
|
def after_request(response):
|
||||||
|
diff = time.time() - g.start
|
||||||
|
if response.response and response.status_code == 200 and response.content_type.startswith('text/html'):
|
||||||
|
response.set_data(response.get_data().replace(b'__EXECUTION_TIME__', bytes(format(diff * 1000, '.1f'), 'utf-8')))
|
||||||
|
return response
|
||||||
|
|
||||||
|
@app.context_processor
|
||||||
|
def add_dbtime():
|
||||||
|
def dbtime():
|
||||||
|
queries = get_recorded_queries()
|
||||||
|
total_duration = sum(q.duration for q in queries)
|
||||||
|
return format(total_duration * 1000, '.1f')
|
||||||
|
return dict(dbtime=dbtime)
|
||||||
|
Loading…
Reference in New Issue
Block a user