Implemented template inheritance and brought back errors

magic-columns
Simon Willison 2017-10-23 19:56:27 -07:00
rodzic 0fa1772697
commit b20d7119e4
5 zmienionych plików z 40 dodań i 15 usunięć

22
app.py
Wyświetl plik

@ -86,7 +86,13 @@ class BaseView(HTTPMethodView):
as_json = kwargs.pop('as_json')
except KeyError:
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:
r = response.json(data)
r.headers['Access-Control-Allow-Origin'] = '*'
@ -103,21 +109,7 @@ class BaseView(HTTPMethodView):
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('/')
@sqlerrors
async def index(request, sql=None):
databases = ensure_build_metadata(True)
return jinja.render(

Wyświetl plik

@ -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>

Wyświetl plik

@ -1,3 +1,8 @@
{% extends "base.html" %}
{% block title %}{{ database }}{% endblock %}
{% block content %}
<h1>{{ database }}</h1>
<style>
@ -25,3 +30,4 @@ td {
</tr>
{% endfor %}
</table>
{% endblock %}

Wyświetl plik

@ -1,4 +1,11 @@
{% extends "base.html" %}
{% block title %}Databases{% endblock %}
{% block content %}
<h1>Database{% if databases.keys()|length != 1 %}s{% endif %}</h1>
{% for name, info in databases.items() %}
<p><a href="{{ name}}-{{ info.hash|truncate(7, end='') }}">{{ name }}</a></p>
{% endfor %}
{% endblock %}

Wyświetl plik

@ -1,3 +1,8 @@
{% extends "base.html" %}
{% block title %}{{ database }}: {{ table }}{% endblock %}
{% block content %}
<h1><a href="/{{ database }}-{{ database_hash }}">{{ database }}</a></h1>
<h2>{{ table }}</h2>
@ -22,3 +27,4 @@ td {
</tr>
{% endfor %}
</table>
{% endblock %}