mirror of
https://github.com/simonw/datasette.git
synced 2025-12-10 16:51:24 +01:00
Removed dependency on sanic-jinja2
I wasn't using any of the functionality it adds on top of raw Jinja2. Refs #12 and #153
This commit is contained in:
parent
8ab3a169d4
commit
ffa77f62b4
2 changed files with 19 additions and 17 deletions
|
|
@ -3,8 +3,7 @@ from sanic import response
|
|||
from sanic.exceptions import NotFound
|
||||
from sanic.views import HTTPMethodView
|
||||
from sanic.request import RequestParameters
|
||||
from sanic_jinja2 import SanicJinja2
|
||||
from jinja2 import FileSystemLoader
|
||||
from jinja2 import Environment, FileSystemLoader
|
||||
import re
|
||||
import sqlite3
|
||||
from pathlib import Path
|
||||
|
|
@ -43,13 +42,20 @@ HASH_BLOCK_SIZE = 1024 * 1024
|
|||
connections = threading.local()
|
||||
|
||||
|
||||
class BaseView(HTTPMethodView):
|
||||
class RenderMixin(HTTPMethodView):
|
||||
def render(self, template, **context):
|
||||
return response.html(
|
||||
self.jinja_env.get_template(template).render(**context)
|
||||
)
|
||||
|
||||
|
||||
class BaseView(RenderMixin):
|
||||
template = None
|
||||
|
||||
def __init__(self, datasette):
|
||||
self.ds = datasette
|
||||
self.files = datasette.files
|
||||
self.jinja = datasette.jinja
|
||||
self.jinja_env = datasette.jinja_env
|
||||
self.executor = datasette.executor
|
||||
self.page_size = datasette.page_size
|
||||
self.max_returned_rows = datasette.max_returned_rows
|
||||
|
|
@ -239,9 +245,8 @@ class BaseView(HTTPMethodView):
|
|||
'datasette_version': __version__,
|
||||
}
|
||||
}
|
||||
r = self.jinja.render(
|
||||
r = self.render(
|
||||
template,
|
||||
request,
|
||||
**context,
|
||||
)
|
||||
r.status = status_code
|
||||
|
|
@ -253,11 +258,11 @@ class BaseView(HTTPMethodView):
|
|||
return r
|
||||
|
||||
|
||||
class IndexView(HTTPMethodView):
|
||||
class IndexView(RenderMixin):
|
||||
def __init__(self, datasette):
|
||||
self.ds = datasette
|
||||
self.files = datasette.files
|
||||
self.jinja = datasette.jinja
|
||||
self.jinja_env = datasette.jinja_env
|
||||
self.executor = datasette.executor
|
||||
|
||||
async def get(self, request, as_json):
|
||||
|
|
@ -294,9 +299,8 @@ class IndexView(HTTPMethodView):
|
|||
}
|
||||
)
|
||||
else:
|
||||
return self.jinja.render(
|
||||
return self.render(
|
||||
'index.html',
|
||||
request,
|
||||
databases=databases,
|
||||
metadata=self.ds.metadata,
|
||||
datasette_version=__version__,
|
||||
|
|
@ -888,17 +892,16 @@ class Datasette:
|
|||
|
||||
def app(self):
|
||||
app = Sanic(__name__)
|
||||
self.jinja = SanicJinja2(
|
||||
app,
|
||||
self.jinja_env = Environment(
|
||||
loader=FileSystemLoader([
|
||||
str(app_root / 'datasette' / 'templates')
|
||||
]),
|
||||
autoescape=True,
|
||||
)
|
||||
self.jinja.add_env('escape_css_string', escape_css_string, 'filters')
|
||||
self.jinja.add_env('quote_plus', lambda u: urllib.parse.quote_plus(u), 'filters')
|
||||
self.jinja.add_env('escape_table_name', escape_sqlite_table_name, 'filters')
|
||||
self.jinja.add_env('to_css_class', to_css_class, 'filters')
|
||||
self.jinja_env.filters['escape_css_string'] = escape_css_string
|
||||
self.jinja_env.filters['quote_plus'] = lambda u: urllib.parse.quote_plus(u)
|
||||
self.jinja_env.filters['escape_table_name'] = escape_sqlite_table_name
|
||||
self.jinja_env.filters['to_css_class'] = to_css_class
|
||||
app.add_route(IndexView.as_view(self), '/<as_json:(.jsono?)?$>')
|
||||
# TODO: /favicon.ico and /-/static/ deserve far-future cache expires
|
||||
app.add_route(favicon, '/favicon.ico')
|
||||
|
|
|
|||
1
setup.py
1
setup.py
|
|
@ -16,7 +16,6 @@ setup(
|
|||
'click-default-group==1.2',
|
||||
'Sanic==0.6.0',
|
||||
'Jinja2==2.10',
|
||||
'sanic-jinja2==0.5.5',
|
||||
'hupper==1.0',
|
||||
],
|
||||
entry_points='''
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue