Skip to content

⚡Flet-Easy is a package created as a Flet add-on, designed to be easy to use with a cleaner order in the code, having many customizable features.

License

Notifications You must be signed in to change notification settings

Daxexs/flet-easy

Repository files navigation

githubpypi

image image image

Downloads pdm-managed

logo

🔥Flet-Easy

Flet-Easy is a package built as an add-on for Flet, designed for beginners what it does is to make Flet easier when building your apps, with a tidier and simpler code.

Features

  • Easy to use (hence the name).
  • Facilitates flet event handling.
  • Simple page routing (There are three ways) for whichever one suits you best. (Docs)
  • App construction with numerous pages and custom flet configurations for desktop, mobile and web sites.
  • Provides a better construction of your code, which can be scalable and easy to read (it adapts to your preferences, there are no limitations).
  • Dynamic routing, customization in the routes for greater accuracy in sending data. (Docs)
  • Routing protection (Docs)
  • Custom Page 404 (Docs)
  • Controlled data sharing between pages. (Docs)
  • Asynchronous support.
  • Middleware Support (in the app in general and in each of the pages). (Docs)
  • JWT support for authentication sessions in the data parameter. (useful to control the time of sessions) (Docs)
  • Working with other applications. (Docs)
  • CLI to create app structure FletEasy (fs init) (Docs)
  • Easy integration of on_keyboard_event in each of the pages. (Docs)
  • Use the percentage of the page width and height of the page with on_resize. (Docs)
  • ResponsiveControlsy control to make the app responsive, useful for desktop applications. (Docs)
  • Soporta Application Packaging para su distribución. (view)

📌Flet events it handles

  • on_route_change : Dynamic routing
  • on_view_pop
  • on_keyboard_event
  • on_resize
  • on_error

💻Installation:

Requires installation Flet for use:

  pip install flet --upgrade
  pip install flet-easy

💻Update:

  pip install flet-easy --upgrade

🔥Flet-Easy app example

Here is an example of an application with 2 pages, "Home" and "Counter":

import flet as ft
import flet_easy as fs

app = fs.FletEasy(route_init="/flet-easy")

# We add a page
@app.page(route="/flet-easy", title="Flet-Easy")
def index_page(data: fs.Datasy):
    return ft.View(
        controls=[
            ft.Text("Home page"),
            ft.FilledButton("Go to Counter", on_click=data.go("/counter")),
        ],
        vertical_alignment="center",
        horizontal_alignment="center",
    )

# We add a second page
@app.page(route="/counter", title="Counter")
def counter_page(data: fs.Datasy):
    page = data.page

    txt_number = ft.TextField(value="0", text_align="right", width=100)

    def minus_click(e):
        txt_number.value = str(int(txt_number.value) - 1)
        page.update()

    def plus_click(e):
        txt_number.value = str(int(txt_number.value) + 1)
        page.update()

    return ft.View(
        controls=[
            ft.Row(
                [
                    ft.IconButton(ft.icons.REMOVE, on_click=minus_click),
                    txt_number,
                    ft.IconButton(ft.icons.ADD, on_click=plus_click),
                ],
                alignment="center",
            ),
            ft.FilledButton("Go to Home", on_click=data.go("/flet-easy")),
        ],
        vertical_alignment="center",
        horizontal_alignment="center",
    )

# We run the application
app.run()

🎬 Mode

app example

🚀 How to use Flet-Easy?

👀 Code examples

🔎 Contribute to this project

Read the CONTRIBUTING.md file

🧾 License

Apache License 2.0