flet-easy


Nameflet-easy JSON
Version 0.2.1 PyPI version JSON
download
home_pageNone
Summary⚡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.
upload_time2024-04-25 01:46:59
maintainerNone
docs_urlNone
authorNone
requires_python>=3.8
licenseapache-2.0
keywords flet easy flet python flet easy route python web template app python flet mvc flet easy mvc flet easy fastapi flutter python web application fast flet
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            [![github](https://img.shields.io/badge/my_profile-000?style=for-the-badge&logo=github&logoColor=white)](https://github.com/Daxexs)[![pypi](https://img.shields.io/badge/Pypi-0A66C2?style=for-the-badge&logo=pypi&logoColor=white)](https://pypi.org/project/flet-easy)

[![image](https://img.shields.io/pypi/pyversions/flet-easy.svg)](https://pypi.python.org/pypi/flet-easy) [![image](https://img.shields.io/pypi/v/flet-easy.svg)](https://pypi.python.org/pypi/flet-easy) [![image](https://img.shields.io/pypi/l/flet-easy.svg)](https://pypi.python.org/pypi/flet-easy)

[![Downloads](https://static.pepy.tech/badge/flet-easy)](https://pepy.tech/project/flet-easy) [![pdm-managed](https://img.shields.io/badge/pdm-managed-blueviolet)](https://pdm-project.org)

<div align="center">
    <img src="https://github.com/Daxexs/flet-easy/blob/main/media/logo.png?raw=true" alt="logo" width="250">
</div>


# 🔥Flet-Easy
`Flet-Easy` is a package built as an add-on for [`Flet`](https://github.com/flet-dev/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`**](https://daxexs.github.io/flet-easy/latest/dynamic-routes/))
* 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`**](https://daxexs.github.io/flet-easy/latest/dynamic-routes/#custom-validation))
* Routing protection ([**`Docs`**](https://daxexs.github.io/flet-easy/latest/Customized-app/Route-protection/))
* Custom Page 404 ([**`Docs`**](https://daxexs.github.io/flet-easy/latest/Customized-app/Page-404/))
* Controlled data sharing between pages. ([**`Docs`**](https://daxexs.github.io/flet-easy/latest/Data-sharing-between-pages/))
* Asynchronous support.
* Middleware Support (in the app in general and in each of the pages). ([**`Docs`**](https://daxexs.github.io/flet-easy/latest/Midleware/))
* JWT support for authentication sessions in the data parameter. (useful to control the time of sessions) ([**`Docs`**](https://daxexs.github.io/flet-easy/latest/Basic-JWT/))
* Working with other applications. ([**`Docs`**](https://daxexs.github.io/flet-easy/latest/Data-sharing-between-pages/))
* CLI to create app structure `FletEasy` (`fs init`) ([**`Docs`**](https://daxexs.github.io/flet-easy/latest/CLI-to-create-app/))
* Easy integration of `on_keyboard_event` in each of the pages. ([**`Docs`**](https://daxexs.github.io/flet-easy/latest/Events/keyboard-event/))
* Use the percentage of the page width and height of the page with `on_resize`. ([**`Docs`**](https://daxexs.github.io/flet-easy/latest/Events/On-resize/))
* `ResponsiveControlsy` control to make the app responsive, useful for desktop applications. ([**`Docs`**](https://daxexs.github.io/flet-easy/latest/ResponsiveControlsy/))
* Soporta Application Packaging para su distribución. ([view](https://flet.dev/docs/publish))

## 📌Flet events it handles

- `on_route_change` :  Dynamic routing
- `on_view_pop`
- `on_keyboard_event`
- `on_resize`
- `on_error`

## 💻Installation:

Requires installation [`Flet`](https://github.com/flet-dev/flet) for use:
```bash
  pip install flet --upgrade
```
```bash
  pip install flet-easy
```

## 💻Update:
```bash
  pip install flet-easy --upgrade
```

## 🔥Flet-Easy app example
Here is an example of an application with 2 pages, "Home" and "Counter":

```python
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](https://github.com/Daxexs/flet-easy/blob/main/media/app-example.gif?raw=true "app example")

## 🚀 How to use `Flet-Easy`?
> [!IMPORTANT]
Documentation: https://daxexs.github.io/flet-easy/latest/

## 👀 Code examples
> [!NOTE]
https://github.com/Daxexs/flet-easy/tree/main/tests

## 🔎 Contribute to this project
Read the [CONTRIBUTING.md](https://github.com/Daxexs/flet-easy/blob/main/CONTRIBUTING.md) file

# 🧾 License
[Apache License 2.0](https://choosealicense.com/licenses/apache-2.0/)
            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "flet-easy",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.8",
    "maintainer_email": null,
    "keywords": "flet easy, flet, python, flet easy route, python web template, app python, flet mvc, flet easy mvc, flet easy fastapi, flutter python, web application, fast flet",
    "author": null,
    "author_email": "Daxexs <Daxexsdev@gmail.com>",
    "download_url": "https://files.pythonhosted.org/packages/2a/53/637408c84ef582eeed786161359085a85a6dfb9546d04917bc0d3f5f12b9/flet_easy-0.2.1.tar.gz",
    "platform": null,
    "description": "[![github](https://img.shields.io/badge/my_profile-000?style=for-the-badge&logo=github&logoColor=white)](https://github.com/Daxexs)[![pypi](https://img.shields.io/badge/Pypi-0A66C2?style=for-the-badge&logo=pypi&logoColor=white)](https://pypi.org/project/flet-easy)\n\n[![image](https://img.shields.io/pypi/pyversions/flet-easy.svg)](https://pypi.python.org/pypi/flet-easy) [![image](https://img.shields.io/pypi/v/flet-easy.svg)](https://pypi.python.org/pypi/flet-easy) [![image](https://img.shields.io/pypi/l/flet-easy.svg)](https://pypi.python.org/pypi/flet-easy)\n\n[![Downloads](https://static.pepy.tech/badge/flet-easy)](https://pepy.tech/project/flet-easy) [![pdm-managed](https://img.shields.io/badge/pdm-managed-blueviolet)](https://pdm-project.org)\n\n<div align=\"center\">\n    <img src=\"https://github.com/Daxexs/flet-easy/blob/main/media/logo.png?raw=true\" alt=\"logo\" width=\"250\">\n</div>\n\n\n# \ud83d\udd25Flet-Easy\n`Flet-Easy` is a package built as an add-on for [`Flet`](https://github.com/flet-dev/flet), designed for beginners what it does is to make `Flet` easier when building your apps, with a tidier and simpler code.\n\n## Features\n* Easy to use (**hence the name**).\n* Facilitates `flet` event handling.\n* Simple page routing (There are three ways) for whichever one suits you best. ([**`Docs`**](https://daxexs.github.io/flet-easy/latest/dynamic-routes/))\n* App construction with numerous pages and custom flet configurations for desktop, mobile and web sites.\n* Provides a better construction of your code, which can be scalable and easy to read (it adapts to your preferences, there are no limitations).\n* Dynamic routing, customization in the routes for greater accuracy in sending data. ([**`Docs`**](https://daxexs.github.io/flet-easy/latest/dynamic-routes/#custom-validation))\n* Routing protection ([**`Docs`**](https://daxexs.github.io/flet-easy/latest/Customized-app/Route-protection/))\n* Custom Page 404 ([**`Docs`**](https://daxexs.github.io/flet-easy/latest/Customized-app/Page-404/))\n* Controlled data sharing between pages. ([**`Docs`**](https://daxexs.github.io/flet-easy/latest/Data-sharing-between-pages/))\n* Asynchronous support.\n* Middleware Support (in the app in general and in each of the pages). ([**`Docs`**](https://daxexs.github.io/flet-easy/latest/Midleware/))\n* JWT support for authentication sessions in the data parameter. (useful to control the time of sessions) ([**`Docs`**](https://daxexs.github.io/flet-easy/latest/Basic-JWT/))\n* Working with other applications. ([**`Docs`**](https://daxexs.github.io/flet-easy/latest/Data-sharing-between-pages/))\n* CLI to create app structure `FletEasy` (`fs init`) ([**`Docs`**](https://daxexs.github.io/flet-easy/latest/CLI-to-create-app/))\n* Easy integration of `on_keyboard_event` in each of the pages. ([**`Docs`**](https://daxexs.github.io/flet-easy/latest/Events/keyboard-event/))\n* Use the percentage of the page width and height of the page with `on_resize`. ([**`Docs`**](https://daxexs.github.io/flet-easy/latest/Events/On-resize/))\n* `ResponsiveControlsy` control to make the app responsive, useful for desktop applications. ([**`Docs`**](https://daxexs.github.io/flet-easy/latest/ResponsiveControlsy/))\n* Soporta Application Packaging para su distribuci\u00f3n. ([view](https://flet.dev/docs/publish))\n\n## \ud83d\udcccFlet events it handles\n\n- `on_route_change` :  Dynamic routing\n- `on_view_pop`\n- `on_keyboard_event`\n- `on_resize`\n- `on_error`\n\n## \ud83d\udcbbInstallation:\n\nRequires installation [`Flet`](https://github.com/flet-dev/flet) for use:\n```bash\n  pip install flet --upgrade\n```\n```bash\n  pip install flet-easy\n```\n\n## \ud83d\udcbbUpdate:\n```bash\n  pip install flet-easy --upgrade\n```\n\n## \ud83d\udd25Flet-Easy app example\nHere is an example of an application with 2 pages, \"Home\" and \"Counter\":\n\n```python\nimport flet as ft\nimport flet_easy as fs\n\napp = fs.FletEasy(route_init=\"/flet-easy\")\n\n# We add a page\n@app.page(route=\"/flet-easy\", title=\"Flet-Easy\")\ndef index_page(data: fs.Datasy):\n    return ft.View(\n        controls=[\n            ft.Text(\"Home page\"),\n            ft.FilledButton(\"Go to Counter\", on_click=data.go(\"/counter\")),\n        ],\n        vertical_alignment=\"center\",\n        horizontal_alignment=\"center\",\n    )\n\n# We add a second page\n@app.page(route=\"/counter\", title=\"Counter\")\ndef counter_page(data: fs.Datasy):\n    page = data.page\n\n    txt_number = ft.TextField(value=\"0\", text_align=\"right\", width=100)\n\n    def minus_click(e):\n        txt_number.value = str(int(txt_number.value) - 1)\n        page.update()\n\n    def plus_click(e):\n        txt_number.value = str(int(txt_number.value) + 1)\n        page.update()\n\n    return ft.View(\n        controls=[\n            ft.Row(\n                [\n                    ft.IconButton(ft.icons.REMOVE, on_click=minus_click),\n                    txt_number,\n                    ft.IconButton(ft.icons.ADD, on_click=plus_click),\n                ],\n                alignment=\"center\",\n            ),\n            ft.FilledButton(\"Go to Home\", on_click=data.go(\"/flet-easy\")),\n        ],\n        vertical_alignment=\"center\",\n        horizontal_alignment=\"center\",\n    )\n\n# We run the application\napp.run()\n```\n\n## \ud83c\udfac **Mode**\n![app example](https://github.com/Daxexs/flet-easy/blob/main/media/app-example.gif?raw=true \"app example\")\n\n## \ud83d\ude80 How to use `Flet-Easy`?\n> [!IMPORTANT]\nDocumentation: https://daxexs.github.io/flet-easy/latest/\n\n## \ud83d\udc40 Code examples\n> [!NOTE]\nhttps://github.com/Daxexs/flet-easy/tree/main/tests\n\n## \ud83d\udd0e Contribute to this project\nRead the [CONTRIBUTING.md](https://github.com/Daxexs/flet-easy/blob/main/CONTRIBUTING.md) file\n\n# \ud83e\uddfe License\n[Apache License 2.0](https://choosealicense.com/licenses/apache-2.0/)",
    "bugtrack_url": null,
    "license": "apache-2.0",
    "summary": "\u26a1Flet-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.",
    "version": "0.2.1",
    "project_urls": {
        "Changelog": "https://github.com/Daxexs/flet-easy/blob/main/README.md",
        "Documentation": "https://github.com/Daxexs/flet-easy/blob/main/README.md",
        "Homepage": "https://github.com/Daxexs",
        "Repository": "https://github.com/Daxexs/flet-easy"
    },
    "split_keywords": [
        "flet easy",
        " flet",
        " python",
        " flet easy route",
        " python web template",
        " app python",
        " flet mvc",
        " flet easy mvc",
        " flet easy fastapi",
        " flutter python",
        " web application",
        " fast flet"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "be3d89d8dcdb303aa590dd0bb9961e689be240966ef7cca8efe9400d68f7893d",
                "md5": "6d0b84dc8faa1e3aa7213a0eb8edf0f0",
                "sha256": "b38e66b880dfd49e6099c93d7fec8807801b63b5676868ae1ad504608b6ca81c"
            },
            "downloads": -1,
            "filename": "flet_easy-0.2.1-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "6d0b84dc8faa1e3aa7213a0eb8edf0f0",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.8",
            "size": 208407,
            "upload_time": "2024-04-25T01:46:57",
            "upload_time_iso_8601": "2024-04-25T01:46:57.393007Z",
            "url": "https://files.pythonhosted.org/packages/be/3d/89d8dcdb303aa590dd0bb9961e689be240966ef7cca8efe9400d68f7893d/flet_easy-0.2.1-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "2a53637408c84ef582eeed786161359085a85a6dfb9546d04917bc0d3f5f12b9",
                "md5": "8b220882e1152fae9b45c995a016317f",
                "sha256": "12fdfe60aeb1d7733ca015ebfca31d8a551c650b5730cb953426d843cd20ec61"
            },
            "downloads": -1,
            "filename": "flet_easy-0.2.1.tar.gz",
            "has_sig": false,
            "md5_digest": "8b220882e1152fae9b45c995a016317f",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.8",
            "size": 203132,
            "upload_time": "2024-04-25T01:46:59",
            "upload_time_iso_8601": "2024-04-25T01:46:59.265707Z",
            "url": "https://files.pythonhosted.org/packages/2a/53/637408c84ef582eeed786161359085a85a6dfb9546d04917bc0d3f5f12b9/flet_easy-0.2.1.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-04-25 01:46:59",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "Daxexs",
    "github_project": "flet-easy",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": false,
    "lcname": "flet-easy"
}
        
Elapsed time: 0.24185s