pyview-web 0.0.21

Creator: codyrutscher

Last updated:

Add to Cart

Description:

pyviewweb 0.0.21

PyView

A Python implementation of Phoenix LiveView

PyView enables dynamic, real-time web apps, using server-rendered HTML.
Source Code: https://github.com/ogrodnek/pyview
Installation
pip install pyview-web
Quickstart
There's a cookiecutter template available
cookiecutter gh:ogrodnek/pyview-cookiecutter

Live Examples
https://examples.pyview.rocks/
Other Examples

pyview AI chat
pyview auth example (using authlib)

Simple Counter
See it live!
count.py:
from pyview import LiveView, LiveViewSocket
from typing import TypedDict


class CountContext(TypedDict):
count: int


class CountLiveView(LiveView[CountContext]):
async def mount(self, socket: LiveViewSocket[CountContext], _session):
socket.context = {"count": 0}

async def handle_event(self, event, payload, socket: LiveViewSocket[CountContext]):
if event == "decrement":
socket.context["count"] -= 1

if event == "increment":
socket.context["count"] += 1

async def handle_params(self, url, params, socket: LiveViewSocket[CountContext]):
if "c" in params:
socket.context["count"] = int(params["c"][0])

count.html:
<div>
<h1>Count is {{count}}</h1>
<button phx-click="decrement">-</button>
<button phx-click="increment">+</button>
</div>

Acknowledgements


Obviously this project wouldn't exist without Phoenix LiveView, which is a wonderful paradigm and implementation. Besides using their ideas, we also directly use the LiveView JavaScript code.


Thanks to Donnie Flood for the encouragement, inspiration, help, and even pull requests to get this project started! Check out LiveViewJS for a TypeScript implementation of LiveView (that's much more mature than this one!)


Thanks to Darren Mulholland for both his Let's Build a Template Language tutorial, as well as his ibis template engine, which he very generously released into the public domain, and forms the basis of templating in PyView.


Additional Thanks

We're using the pubsub implementation from flet
PyView is built on top of Starlette.

Status
PyView is in the very early stages of active development. Please check it out and give feedback! Note that the API is likely to change, and there are many features that are not yet implemented.
Running the included Examples
Setup
poetry install

Running
poetry run uvicorn examples.app:app --reload

Then go to http://localhost:8000/
Poetry Install
brew install pipx
pipx install poetry
pipx ensurepath

(see https://python-poetry.org/docs/#installation for more details)
License
PyView is licensed under the MIT License.

License

For personal and professional use. You cannot resell or redistribute these repositories in their original state.

Customer Reviews

There are no reviews.