diff --git a/datasette/app.py b/datasette/app.py index 0bac61e6..f705dd78 100644 --- a/datasette/app.py +++ b/datasette/app.py @@ -149,7 +149,7 @@ class BaseView(HTTPMethodView): 'error': str(e), } end = time.time() - data['took_ms'] = (end - start) * 1000 + data['query_ms'] = (end - start) * 1000 if as_json: # Special case for .jsono extension if as_json == '.jsono': @@ -209,7 +209,7 @@ class IndexView(HTTPMethodView): )[:5], 'tables_count': len(info['tables'].items()), 'tables_more': len(info['tables'].items()) > 5, - 'total_rows': sum(info['tables'].values()), + 'table_rows': sum(info['tables'].values()), } databases.append(database) if as_json: @@ -321,9 +321,9 @@ class TableView(BaseView): where_clause = '' if where_clauses: - where_clause = 'where {}'.format(' and '.join(where_clauses)) + where_clause = 'where {} '.format(' and '.join(where_clauses)) - sql = 'select {} from "{}" {} order by {} limit {}'.format( + sql = 'select {} from "{}" {}order by {} limit {}'.format( select, table, where_clause, order_by, self.page_size + 1, ) @@ -335,7 +335,7 @@ class TableView(BaseView): display_columns = display_columns[1:] rows = list(rows) info = self.ds.metadata() - total_rows = info[name]['tables'].get(table) + table_rows = info[name]['tables'].get(table) after = None after_link = None if len(rows) > self.page_size: @@ -345,11 +345,13 @@ class TableView(BaseView): 'database': name, 'table': table, 'rows': rows[:self.page_size], - 'total_rows': total_rows, + 'table_rows': table_rows, 'columns': columns, 'primary_keys': pks, - 'sql': sql, - 'sql_params': params, + 'query': { + 'sql': sql, + 'params': params, + }, 'after': after, }, lambda: { 'database_hash': hash, diff --git a/datasette/templates/base.html b/datasette/templates/base.html index 9b66aaf6..3c4ad124 100644 --- a/datasette/templates/base.html +++ b/datasette/templates/base.html @@ -16,7 +16,7 @@
Powered by Datasette - {% if took_ms %}· Query took {{ took_ms|round(3) }}ms{% endif %} + {% if query_ms %}· Query took {{ query_ms|round(3) }}ms{% endif %}
diff --git a/datasette/templates/index.html b/datasette/templates/index.html index d8d1d239..e3acfdb4 100644 --- a/datasette/templates/index.html +++ b/datasette/templates/index.html @@ -6,7 +6,7 @@

Datasette

{% for database in databases %}

{{ database.name }}

-

{{ "{:,}".format(database.total_rows) }} rows in {{ database.tables_count }} table{% if database.tables_count != 1 %}s{% endif %}

+

{{ "{:,}".format(database.table_rows) }} rows in {{ database.tables_count }} table{% if database.tables_count != 1 %}s{% endif %}

{% for table, count in database.tables_truncated %}{{ table }}{% if not loop.last %}, {% endif %}{% endfor %}{% if database.tables_more %}, ...{% endif %}

{% endfor %} diff --git a/datasette/templates/table.html b/datasette/templates/table.html index 473e7371..c2fb40da 100644 --- a/datasette/templates/table.html +++ b/datasette/templates/table.html @@ -18,8 +18,8 @@

{{ table }}

-{% if total_rows != None %} -

{{ "{:,}".format(total_rows) }} total row{% if total_rows == 1 %}{% else %}s{% endif %} in this table

+{% if table_rows != None %} +

{{ "{:,}".format(table_rows) }} total row{% if table_rows == 1 %}{% else %}s{% endif %} in this table

{% endif %} diff --git a/tests/test_app.py b/tests/test_app.py index b79c327b..ac3f6b76 100644 --- a/tests/test_app.py +++ b/tests/test_app.py @@ -36,6 +36,14 @@ def test_database_page(three_table_app_client): assert 'three_tables' in response.text +def test_table_page(three_table_app_client): + _, response = three_table_app_client.get('/three_tables/simple_primary_key') + assert response.status == 200 + _, response = three_table_app_client.get('/three_tables/simple_primary_key.jsono') + assert response.status == 200 + data = response.json + assert data['query']['sql'] == 'select * from "simple_primary_key" order by pk limit 51' + assert data['query']['params'] == {} THREE_TABLES = '''