def lesson_jinja_env(self): env = jinja2.Environment( loader=jinja2.FileSystemLoader([str(self.path / 'lessons')]), autoescape=jinja2.select_autoescape(['html', 'xml']), ) setup_jinja_env(env) return env
from flask import Flask, render_template, url_for, send_from_directory from flask import abort, redirect from jinja2 import StrictUndefined from jinja2.exceptions import TemplateNotFound from werkzeug.local import LocalProxy from pathlib import Path from naucse import models from naucse.urlconverters import register_url_converters from naucse.templates import setup_jinja_env, vars_functions app = Flask('naucse') app.config['TEMPLATES_AUTO_RELOAD'] = True setup_jinja_env(app.jinja_env) _cached_model = None @LocalProxy def model(): """Return the root of the naucse model In debug mode (elsa serve), a new model is returned for each requests, so changes are picked up. In non-debug mode (elsa freeze), a single model is used (and stored in _cached_model), so that metadata is only read once. """ global _cached_model