easy-web-app

Create web applications easily by defining them in JSON format.


Keywords
GUI, web, app, browser, AJAX, easy, portal, REST, RESTful, service, form, table, I/O, content, serverless, API, centric
License
MIT
Install
pip install easy-web-app==0.3.1

Documentation

Easy Web App (for Python)

Create web applications easily.

This is a PyPI package for the rest-web-gui framework.

Focus is on web applications (not simple web pages). A lot of plug-ins are available to get a portal it quickly configured:

  • Forms
  • Tables / lists
  • Content: via MediaWiki API, plain HTML views, or help dialogs
  • I/O: control switches/drawer, gauges, graphs, LEDs, displays, ...
  • i18n: switch language
  • Maps: POIs, routes, traffic, ...
  • Page to page navigation with navigation tabs, menus, links and session data
  • Source code display
  • Security: HTTP Basic authentication or OAuth
  • ...

This is how it may look like:

https://raw.githubusercontent.com/ma-ha/easy-web-app/master/examples/demo-screen.png

Check out the online demos.

Remark: It is also available as Node.js API package.

Getting started

Prepare:

  1. Create a web application project folder, e.g. mkdir ~/myapp
  2. Create a virtual Python environment for this folder: virtualenv ~/myapp
  3. Change into the project folder and activate the virtual environment: cd ~/myapp; source bin\activate
  4. Install this package: pip install easy-web-app

Create first web app with Python:

Create a file, e.g. firstapp.py

from easywebapp.webapp import Portal
import easywebapp.page_layout as page

mainpage = page.PageLayout( 'First Page' )

# initialize portal
portal = Portal( 'My Portal', 8000, mainpage )

# define a custom web service
portal.addURL( '/myservice', 'myservice' )

class myservice:
    def GET( self ):
        return 'Hello World'

# start the web server
portal.run()

TODOs

  • [x] First working rest-web-ui integration
  • [x] PyPI package
  • [ ] configure port from init
  • [x] portal.getPage( name )
  • [x] portal.addPage( pageId [, title] [, viewDef] [, viewConfig] )
  • [ ] Portal pages navigation tabs
  • [x] page.addView( def [, config] )
  • [x] page.addColumnsRow( id, width )
  • [x] row.addView( def [, config] )
  • [x] row.addColumnsRow ( id, height )
  • [x] column.addView ( def [, config] )
  • [x] column.addRowsColumn ( id, width )
  • [x] View API
  • [ ] I/O server and API