main.py 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. """
  2. An example demonstrating a stand-alone "filebrowser".
  3. Copyright (c) Jupyter Development Team.
  4. Distributed under the terms of the Modified BSD License.
  5. Example
  6. -------
  7. To run the example, see the instructions in the README to build it. Then
  8. run ``python main.py``.
  9. """
  10. import os
  11. from jinja2 import FileSystemLoader
  12. from notebook.base.handlers import IPythonHandler, FileFindHandler
  13. from notebook.notebookapp import NotebookApp
  14. from notebook.utils import url_path_join as ujoin
  15. from traitlets import Unicode
  16. HERE = os.path.dirname(__file__)
  17. class ExampleHandler(IPythonHandler):
  18. """Handle requests between the main app page and notebook server."""
  19. def get(self):
  20. """Get the main page for the application's interface."""
  21. return self.write(self.render_template('index.html',
  22. static=self.static_url,
  23. base_url=self.base_url,
  24. token=self.settings['token']))
  25. def get_template(self, name):
  26. loader = FileSystemLoader(HERE)
  27. return loader.load(self.settings['jinja2_env'], name)
  28. class ExampleApp(NotebookApp):
  29. default_url = Unicode('/example')
  30. def init_webapp(self):
  31. """initialize tornado webapp and httpserver.
  32. """
  33. super(ExampleApp, self).init_webapp()
  34. default_handlers = [
  35. (ujoin(self.base_url, r'/example/?'), ExampleHandler),
  36. (ujoin(self.base_url, r"/example/(.*)"), FileFindHandler,
  37. {'path': os.path.join(HERE, 'build')}) ]
  38. self.web_app.add_handlers('.*$', default_handlers)
  39. if __name__ == '__main__':
  40. ExampleApp.launch_instance()