Skip to main content

No project description provided

Project description

UiWizard

UiWizard is a python-based ui-framework for the web. It was inspired by the great framework NiceGui. Why create this project that is very similar to NiceGui?

  • The first reason was that NiceGui requires websockets to work and when experimenting with the framework it caused some issues on my hosting platform.
  • Learning. I wanted to figure out how to do something simillar but without using websockets
    • I wanted to try out HTMX
  • Limited control over the underlaying tech stack but mainly just learning

Features

  • Tailwind and DaisyUI for the graphics and responsive layout
  • Webbased
  • Quite a lot of standard elements, input fields, dropdown, foot, header, tabs...
  • HTMX for interactivity
  • Hopefully great defaults!

Usage

Create a main.py file

from uiwiz.app import UiwizApp
from uiwiz import ui
import uvicorn

app = UiwizApp()

@app.page("/")
async def home_page(request: Request):
    ui.label("Hello world")


if __name__ == "__main__":
    uvicorn.run("main:app", reload=True)

Run it

python main.py

General info

HTMX works with input fields in HTML and forms. To make it a bit easier to work with the form submit event does not send the data in the normal form format but uses the HTMX extension to convert it to json. This means that endpoints using UiWizard can use pydantic models as the input and have the benefit of validation.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

uiwiz-0.1.25.tar.gz (401.9 kB view hashes)

Uploaded Source

Built Distribution

uiwiz-0.1.25-py3-none-any.whl (415.6 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page