main.py 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. """
  2. Copyright (c) Jupyter Development Team.
  3. Distributed under the terms of the Modified BSD License.
  4. """
  5. from notebook.notebookapp import NotebookApp
  6. import os.path as osp
  7. from jinja2 import FileSystemLoader
  8. from notebook.base.handlers import IPythonHandler, FileFindHandler
  9. from notebook.utils import url_path_join as ujoin
  10. from traitlets import Unicode
  11. HERE = osp.dirname(__file__)
  12. LOADER = FileSystemLoader(HERE)
  13. class ExampleHander(IPythonHandler):
  14. """Handle requests between the main app page and notebook server."""
  15. def get(self):
  16. """Get the main page for the application's interface."""
  17. return self.write(self.render_template('index.html',
  18. static=self.static_url,
  19. base_url=self.base_url,
  20. token=self.settings['token']))
  21. def get_template(self, name):
  22. return LOADER.load(self.settings['jinja2_env'], name)
  23. class ExampleApp(NotebookApp):
  24. """A notebook app that runs the example."""
  25. default_url = Unicode('/example')
  26. def start(self):
  27. default_handlers = [
  28. (ujoin(self.base_url, r'/example/?'), ExampleHander),
  29. (ujoin(self.base_url, r'/example/(.*)'), FileFindHandler, {'path': osp.join(HERE, 'build')}),
  30. ]
  31. self.web_app.add_handlers('.*$', default_handlers)
  32. super(ExampleApp, self).start()
  33. if __name__ == '__main__':
  34. ExampleApp.launch_instance()