kopia lustrzana https://github.com/simonw/datasette
Implemented template inheritance and brought back errors
rodzic
0fa1772697
commit
b20d7119e4
22
app.py
22
app.py
|
@ -86,7 +86,13 @@ class BaseView(HTTPMethodView):
|
||||||
as_json = kwargs.pop('as_json')
|
as_json = kwargs.pop('as_json')
|
||||||
except KeyError:
|
except KeyError:
|
||||||
as_json = False
|
as_json = False
|
||||||
data = self.data(request, name, hash, **kwargs)
|
try:
|
||||||
|
data = self.data(request, name, hash, **kwargs)
|
||||||
|
except sqlite3.OperationalError as e:
|
||||||
|
data = {
|
||||||
|
'ok': False,
|
||||||
|
'error': str(e),
|
||||||
|
}
|
||||||
if as_json:
|
if as_json:
|
||||||
r = response.json(data)
|
r = response.json(data)
|
||||||
r.headers['Access-Control-Allow-Origin'] = '*'
|
r.headers['Access-Control-Allow-Origin'] = '*'
|
||||||
|
@ -103,21 +109,7 @@ class BaseView(HTTPMethodView):
|
||||||
return r
|
return r
|
||||||
|
|
||||||
|
|
||||||
def sqlerrors(fn):
|
|
||||||
@wraps(fn)
|
|
||||||
async def inner(*args, **kwargs):
|
|
||||||
try:
|
|
||||||
return await fn(*args, **kwargs)
|
|
||||||
except sqlite3.OperationalError as e:
|
|
||||||
return response.json({
|
|
||||||
'ok': False,
|
|
||||||
'error': str(e),
|
|
||||||
})
|
|
||||||
return inner
|
|
||||||
|
|
||||||
|
|
||||||
@app.route('/')
|
@app.route('/')
|
||||||
@sqlerrors
|
|
||||||
async def index(request, sql=None):
|
async def index(request, sql=None):
|
||||||
databases = ensure_build_metadata(True)
|
databases = ensure_build_metadata(True)
|
||||||
return jinja.render(
|
return jinja.render(
|
||||||
|
|
|
@ -0,0 +1,14 @@
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<title>{% block title %}{% endblock %}</title>
|
||||||
|
{% block extra_head %}{% endblock %}
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
{% if error %}
|
||||||
|
<div style="padding: 1em; margin: 1em; border: 3px solid red;">{{ error }}</div>
|
||||||
|
{% endif %}
|
||||||
|
{% block content %}
|
||||||
|
{% endblock %}
|
||||||
|
</body>
|
||||||
|
</html>
|
|
@ -1,3 +1,8 @@
|
||||||
|
{% extends "base.html" %}
|
||||||
|
|
||||||
|
{% block title %}{{ database }}{% endblock %}
|
||||||
|
|
||||||
|
{% block content %}
|
||||||
<h1>{{ database }}</h1>
|
<h1>{{ database }}</h1>
|
||||||
|
|
||||||
<style>
|
<style>
|
||||||
|
@ -25,3 +30,4 @@ td {
|
||||||
</tr>
|
</tr>
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
</table>
|
</table>
|
||||||
|
{% endblock %}
|
||||||
|
|
|
@ -1,4 +1,11 @@
|
||||||
|
{% extends "base.html" %}
|
||||||
|
|
||||||
|
{% block title %}Databases{% endblock %}
|
||||||
|
|
||||||
|
{% block content %}
|
||||||
<h1>Database{% if databases.keys()|length != 1 %}s{% endif %}</h1>
|
<h1>Database{% if databases.keys()|length != 1 %}s{% endif %}</h1>
|
||||||
{% for name, info in databases.items() %}
|
{% for name, info in databases.items() %}
|
||||||
<p><a href="{{ name}}-{{ info.hash|truncate(7, end='') }}">{{ name }}</a></p>
|
<p><a href="{{ name}}-{{ info.hash|truncate(7, end='') }}">{{ name }}</a></p>
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
|
|
||||||
|
{% endblock %}
|
|
@ -1,3 +1,8 @@
|
||||||
|
{% extends "base.html" %}
|
||||||
|
|
||||||
|
{% block title %}{{ database }}: {{ table }}{% endblock %}
|
||||||
|
|
||||||
|
{% block content %}
|
||||||
<h1><a href="/{{ database }}-{{ database_hash }}">{{ database }}</a></h1>
|
<h1><a href="/{{ database }}-{{ database_hash }}">{{ database }}</a></h1>
|
||||||
|
|
||||||
<h2>{{ table }}</h2>
|
<h2>{{ table }}</h2>
|
||||||
|
@ -22,3 +27,4 @@ td {
|
||||||
</tr>
|
</tr>
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
</table>
|
</table>
|
||||||
|
{% endblock %}
|
||||||
|
|
Ładowanie…
Reference in New Issue