A wrapper for tornado web to run easily web applications as plugins.
The simplest way to use Whirlwind is to instantiate the Application
class along with plugins directory and run its instance with the run
method.
import whirlwind.web
my_app = whirlwind.web.Application('data/plugins')
whirlwind.web.run(my_app)
In your plugins directory, create a directory with the plugin name, i.e. test_plugin
in the following directories: lib
, static
and templates
. The plugins directory should contain a similar structure:
Directory structure:
├── plugins/
│ ├── lib
│ │ ├── test_plugin
│ │ │ ├── __init__.py
│ │ │ ├── my_plugin.py
│ │ │ ├── plugin.json
│ ├── static
│ │ ├── test_plugin
│ │ │ ├── js
│ │ │ │ ├── some_javascript.js
│ ├── templates
│ │ ├── test_plugin
│ │ │ ├── my_html_template.html
The plugin.json
file contains information on URI mapping to plugin classes.
{
"modules" : ["test_plugin.my_plugin"],
"handlers" : [
["/someaction/", "test_plugin.my_plugin.MyActionHandler"],
["/otheraction/(\w+)", "test_plugin.my_plugin.MyActionSecondHandler"],
]
}
MyActionHandler
and MyActionSecondHandler
are classes that extend either tornado.web.RequestHandler
or tornado.websocket.WebSocketHandler
and all the documentation of these parent classes applies to them. You can find more information in the Tornado documentation