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:
Simon Willison 2017-11-30 07:51:40 -08:00
commit ffa77f62b4
No known key found for this signature in database
GPG key ID: FBB38AFE227189DB
2 changed files with 19 additions and 17 deletions

View file

@ -3,8 +3,7 @@ from sanic import response
from sanic.exceptions import NotFound from sanic.exceptions import NotFound
from sanic.views import HTTPMethodView from sanic.views import HTTPMethodView
from sanic.request import RequestParameters from sanic.request import RequestParameters
from sanic_jinja2 import SanicJinja2 from jinja2 import Environment, FileSystemLoader
from jinja2 import FileSystemLoader
import re import re
import sqlite3 import sqlite3
from pathlib import Path from pathlib import Path
@ -43,13 +42,20 @@ HASH_BLOCK_SIZE = 1024 * 1024
connections = threading.local() 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 template = None
def __init__(self, datasette): def __init__(self, datasette):
self.ds = datasette self.ds = datasette
self.files = datasette.files self.files = datasette.files
self.jinja = datasette.jinja self.jinja_env = datasette.jinja_env
self.executor = datasette.executor self.executor = datasette.executor
self.page_size = datasette.page_size self.page_size = datasette.page_size
self.max_returned_rows = datasette.max_returned_rows self.max_returned_rows = datasette.max_returned_rows
@ -239,9 +245,8 @@ class BaseView(HTTPMethodView):
'datasette_version': __version__, 'datasette_version': __version__,
} }
} }
r = self.jinja.render( r = self.render(
template, template,
request,
**context, **context,
) )
r.status = status_code r.status = status_code
@ -253,11 +258,11 @@ class BaseView(HTTPMethodView):
return r return r
class IndexView(HTTPMethodView): class IndexView(RenderMixin):
def __init__(self, datasette): def __init__(self, datasette):
self.ds = datasette self.ds = datasette
self.files = datasette.files self.files = datasette.files
self.jinja = datasette.jinja self.jinja_env = datasette.jinja_env
self.executor = datasette.executor self.executor = datasette.executor
async def get(self, request, as_json): async def get(self, request, as_json):
@ -294,9 +299,8 @@ class IndexView(HTTPMethodView):
} }
) )
else: else:
return self.jinja.render( return self.render(
'index.html', 'index.html',
request,
databases=databases, databases=databases,
metadata=self.ds.metadata, metadata=self.ds.metadata,
datasette_version=__version__, datasette_version=__version__,
@ -888,17 +892,16 @@ class Datasette:
def app(self): def app(self):
app = Sanic(__name__) app = Sanic(__name__)
self.jinja = SanicJinja2( self.jinja_env = Environment(
app,
loader=FileSystemLoader([ loader=FileSystemLoader([
str(app_root / 'datasette' / 'templates') str(app_root / 'datasette' / 'templates')
]), ]),
autoescape=True, autoescape=True,
) )
self.jinja.add_env('escape_css_string', escape_css_string, 'filters') self.jinja_env.filters['escape_css_string'] = escape_css_string
self.jinja.add_env('quote_plus', lambda u: urllib.parse.quote_plus(u), 'filters') self.jinja_env.filters['quote_plus'] = lambda u: urllib.parse.quote_plus(u)
self.jinja.add_env('escape_table_name', escape_sqlite_table_name, 'filters') self.jinja_env.filters['escape_table_name'] = escape_sqlite_table_name
self.jinja.add_env('to_css_class', to_css_class, 'filters') self.jinja_env.filters['to_css_class'] = to_css_class
app.add_route(IndexView.as_view(self), '/<as_json:(.jsono?)?$>') app.add_route(IndexView.as_view(self), '/<as_json:(.jsono?)?$>')
# TODO: /favicon.ico and /-/static/ deserve far-future cache expires # TODO: /favicon.ico and /-/static/ deserve far-future cache expires
app.add_route(favicon, '/favicon.ico') app.add_route(favicon, '/favicon.ico')

View file

@ -16,7 +16,6 @@ setup(
'click-default-group==1.2', 'click-default-group==1.2',
'Sanic==0.6.0', 'Sanic==0.6.0',
'Jinja2==2.10', 'Jinja2==2.10',
'sanic-jinja2==0.5.5',
'hupper==1.0', 'hupper==1.0',
], ],
entry_points=''' entry_points='''