Package: py4web
PY4WEB is a web framework for rapid development of efficient database driven web applications. It is an evolution of the popular web2py framework but much faster and slicker.Main web site:https://py4web.comGitHub repository:https://github.com/web2py/py4webOfficial documentation site:https://py4web.com/_documentationLicense:BSD-3-Clause LicenseScreenshotsRunning py4webThe main DashboardEditing a file in the DashboardEditing a database in the DashboardInstallationPY4WEB runs fine on Windows, MacOS and Linux. There are many installation procedures (see the official documentation for details) but only two of them are summarized here.Thesimplest wayto install py4web is using binaries, but it’s only available for Windows and MacOS. It’s meant especially for newbies or students, because it does not require Python pre-installed on your system nor administrative rights. You just need to download the latest Windows or MacOS ZIP file fromthis external repository. Unzip it on a local folder and open a command line there. Finally run the commands (omit ‘./’ if you’re using Windows)./py4web-startset_password./py4web-startrunappsThestandard installation procedurefor py4web on Windows, MacOS and Linux  is using pip. Its only prerequisite is Python 3.7+.python3-mpipinstall--upgradepy4web--no-cache-dir--userbut donottype the ‘’–user’’ option with virtualenv or a standard Windows installation which is already per-user.
Also, if ‘’python3’’ does not work, try with the simple ‘’python’’ command instead.This will install the latest stable release of py4web and all its dependencies on the system’s path only. After the installation you’ll be able to start py4web on any given working folder withpy4websetupappspy4webset_passwordpy4webrunappsLaunch Arguments# py4web run -h

Usage: py4web.py run [OPTIONS] [APPS_FOLDER]

   Run all the applications on apps_folder

Options:
-Y, --yes                     No prompt, assume yes to questions  [default:
                              False]
-H, --host TEXT               Host name  [default: 127.0.0.1]
-P, --port INTEGER            Port number  [default: 8000]
-p, --password_file TEXT      File for the encrypted password  [default:
                             password.txt]
-s, --server [default|wsgiref|tornado|gunicorn|gevent|waitress|
                geventWebSocketServer|wsgirefThreadingServer|rocketServer]
                              server to use  [default: default]
-w, --number_workers INTEGER  Number of workers  [default: 0]
-d, --dashboard_mode TEXT     Dashboard mode: demo, readonly, full,
                              none  [default: full]
--watch [off|sync|lazy]       Watch python changes and reload apps
                              automatically, modes: off, sync, lazy
                              [default: lazy]
--ssl_cert PATH               SSL certificate file for HTTPS
--ssl_key PATH                SSL key file for HTTPS
--errorlog TEXT               Where to send error logs
                              (:stdout|:stderr|tickets_only|{filename})
                              [default: :stderr]
-L, --logging_level INTEGER   The log level (0 - 50) [default: 30
                              (=WARNING)]
-D, --debug                   Debug switch [default: False]
-help, -h, --help             Show this message and exit.Example:py4webrun-H127.0.0.1-P8000-ddemoappsNote that since the default (as specified above) for the host and port are 127.0.0.1 and 8000 respectively, the above command can be shortened to:py4webrun-ddemoappsTell me moreit is 10-20x faster than web2pypython3.7+ onlyuseshttps://github.com/web2py/pydal(same DAL as web2py) for database connectionuses the same validators as web2py (they are in pyDAL)usesyatl(same as web2py but defaults to [[…]] instead of {{…}} delimiters) andRenoirfor html templatesuses the very similar html helpers to web2py (A, DIV, SPAN, etc.)useshttps://github.com/web2py/pluralizefor i18n and pluralizationrequest, response, abort are fromhttps://bottlepy.org, usingombott (One More BOTTle),
which is a fast bottlepy spin-offHTTP and redirect are our own objectslike web2py, it supports static asset management /{appname}/static/_0.0.0/{path}implements sessions in cookies (jwt encrypted), db, memcache, redis and customimplements a cache.memoize (Ram cache with O(1) access)Memoizesupports multiple apps under apps folder (same as web2py)unlike web2py does not use a custom importer or eval (this allow simple debugging with standard IDE)admin has been replaced by a _dashboardappadmin has been replaced by dbadmin (within _dashboard)auth logic is implemented via a “auth” vue.js custom componentit comes with a Form object (like SQLFORM on web2py)it comes with a Grid object providing grid and CRUD capabilitiesit supportshtmxthis is a work in progress and not stable yet but close to being stablethere are not enough testsContributorsSpecial thanks to Sam de Alfaro, that designed the official logo of py4web. We friendly call the logo “Axel the axolotl”: it magically represents the sense of kindness
and inclusion we believe it’s the cornerstone of our growing community.Many thanks to everyone who has contributed to the project, and especially:Massimo Di PierroLuca de AlfaroCassio BotaroDan CarrollJim SteilJohn M. WolfMicah BeasleyNico ZanferrariPirschsugizovalq7711Kevin KellerSam de Alfaro(logo design)