Using the Tornado UI ModuleΒΆ

Terminado provides a Tornado UI Module. Once you have the websocket handler set up (see Using the TermSocket handler), add the module to your application:

from terminado import uimodule
# ...

app = tornado.web.Application(...
    ui_modules = {'Terminal': uimodule.Terminal},
)

Now, when you want a terminal in your application, you can put this in the template:

{% module Terminal("/websocket", rows=30, cols=90) %}

This will create a div, and include the necessary Javascript code to set up a terminal in that div and connect it to a websocket on ws://<host>/websocket.

If not specified, rows and cols default to 25 and 80, respectively.

For now, this assumes that term.js is available at /xstatic/termjs/term.js, and terminado.js at /static/terminado.js. To serve them from different locations, subclass terminado.uimodule.Terminal, overriding javascript_files().