Jam.py (web framework)

Category:Articles with short descriptionCategory:Short description matches Wikidata
Jam.py
Original author(s)Andrew Yushev
Initial releaseJuly 1, 2015; 9 years ago (2015-07-01)
Stable release
7.0.53[1] Edit this on Wikidata / 8 April 2025; 36 days ago (8 April 2025)
Repositoryhttps://github.com/jam-py-v5/
Written inPython, JavaScript
PlatformCross-platform
TypeWeb framework
LicenseBSD 3-clause
Websitejampyapplicationbuilder.com

Jam.py is Web framework providing low-code and no-code, full solution stack rapid application development using Web Server Gateway Interface (WSGI), for the programming languages JavaScript and Python.[2] It is free and open-source software released under a BSD 3-clause license.

Jam.py version 5.x is a single-page, event driven low-code development platform for database-driven business web applications, based on the don't repeat yourself (DRY) principle, with emphasis on create, read, update and delete (CRUD). It is designed to automatically create JavaScript web forms from the underlying database tables, although a form can be created manually if required. The existing database tables can be imported into Jam.py to create the forms and reports. Database views are unsupported for import.

It provides a built-in web server, graphical user interface builder (named Application Builder), and database access including third-party databases.

Jam.py version 7.x supports routing within the single-page. Uniform resource locator (URL) mapping is unsupported.

Features

Distinctive features

Built-in application builder

All development, maintenance and remote database administration can be performed via Builder interface. The most distinctive feature is the Client and Server Module. The Server Module enables the Python code for business logic, executed as a server-side session. The Client Module executes the JavaScript code within a browser. It is possible to exchange data between the two. [4]

Application Builder is strongly influenced by Delphi visual designer.[5]

Application builder client module

This JavaScript "Hello, World!" program code displays a simple web page when visited:

task.create_menu($("#menu"), $("#content"), {
    splash_screen: '<h1 class="text-center">Hello World!</h1>',
    view_first: true
});

The above code resides in Task/Client Module(s) within the Application Builder. The task function can be accessed globally.

Application builder server module

The Python libraries can be imported within the Task/Server Module(s):

import smtplib

def send_email():
    # code that sends email

The above code imports smtplib library, which might be used to send emails. The defined functions can be accessed globally.

Database migrations

Jam.py supports database migration and data import from one supported database to another. The below code in the Task/Server Module will import data from SQLite to application database:

from jam.db.db_modules import SQLITE

def on_created(task):
    task.copy_database(SQLITE, "demo.sqlite")

Limits:

  • The SQLite database cannot be imported into the application database which has foreign keys.[6]

PythonAnywhere

PythonAnywhere Python 3.x deployment is supported[Note 2]

Notes

References

See also

Category:2015 software Category:Free software programmed in Python Category:Python (programming language) web frameworks Category:Low Code Application Platform Category:Articles with example JavaScript code
Category:2015 software Category:Articles with example JavaScript code Category:Articles with short description Category:Free software programmed in Python Category:Low Code Application Platform Category:Official website different in Wikidata and Wikipedia Category:Python (programming language) web frameworks Category:Short description matches Wikidata