Skipole WSGI generator.
skipole.py is a framework for creating wsgi applications.
A web admin interface allows the developer to create web pages containing widgets.
The developer supplies appropriate python functions to receive data and populate the widget parameters.
Skipole requires python 3.2 or later. It can be installed with:
pip install skipole-bernieski
The framework is used to create a project, this consists of a number of 'pages' generated by the framework that together with your own code will produce a wsgi application.
To create a new project you would normally run:
python3 -m skipole myproj /path/to/projectfiles
You should replace 'myproj' with your preferred name for a new project. A projectfiles directory will be created with your new project 'myproj' and myproj.py within it.
The framework provides a 'skiadmin' facility allowing you to create template pages of various types (html, css and svg) and also 'Responders' which are script 'pages' which call your functions defined in myproj.py
The developer runs python3 /path/to/projectfiles/myproj/code/myproj.py, then connects with a browser to localhost:8000 to view the project, and calls localhost:8000/skiadmin to open an administrative site to add and edit folders and pages.
'pages' are of several types, the main ones being template and responder pages. Typically you populate the templates with widgets, and set up the responders to accept an incoming call, and then route data from the call to your own code. Your code sets data into a Python dictionary, which is set into a template page and returned to the caller.
Your Python functions called by the responders are described in greater detail within this documentation. These functions would typically call further code of your own, to serve whatever data you require.
Multiple 'responder page' types are available, to handle cookies and incoming data.
Serves the application using the python standard library wsgiref.simple_server. Connecting to localhost:8000 will allow you to view the web site, and administer it at localhost:8000/skiadmin
You should inspect the myproj.py file to view how it should be edited.
Stop the server with ctrl-c
Within myproj.py you will see an 'application' created, this is the wsgi application which can be served on any wsgi server. You would need to edit it to remove the 'skiadmin' project, since this is not wanted for a final deployment.
Deploying a web server with the application depends on your server, the wiki at the development site (see the Documentation link in the left navigation panel) gives a number of examples.
The following are skipole projects on the BitBucket site which can be inspected.
pi01: General Raspberry Pi control web server.
pi02: Raspberry Pi control web server, with password access.
skitest: Testing skipole widgets etc.,
skiclub: A club membership scheme, with member and admin login.
svgplot: Illustrates graph generation, requires gnuplot.