flet-easy 0.2.8.dev1__tar.gz → 0.2.8.dev2__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {flet_easy-0.2.8.dev1 → flet_easy-0.2.8.dev2}/PKG-INFO +3 -2
- {flet_easy-0.2.8.dev1 → flet_easy-0.2.8.dev2}/pyproject.toml +6 -2
- {flet_easy-0.2.8.dev1 → flet_easy-0.2.8.dev2}/src/flet_easy/fletEasy.py +38 -19
- {flet_easy-0.2.8.dev1 → flet_easy-0.2.8.dev2}/tests/flet-app/assets/database.db +0 -0
- {flet_easy-0.2.8.dev1 → flet_easy-0.2.8.dev2}/tests/flet-app/controllers/login.py +1 -1
- {flet_easy-0.2.8.dev1 → flet_easy-0.2.8.dev2}/tests/flet-app/controllers/register.py +1 -1
- {flet_easy-0.2.8.dev1 → flet_easy-0.2.8.dev2}/tests/flet-app/main.py +5 -3
- flet_easy-0.2.8.dev2/tests/flet-app/models/__init__.py +1 -0
- flet_easy-0.2.8.dev2/tests/flet-app/models/connection.py +17 -0
- flet_easy-0.2.8.dev2/tests/flet-app/models/methods.py +39 -0
- flet_easy-0.2.8.dev2/tests/flet-app/models/models.py +11 -0
- flet_easy-0.2.8.dev2/tests/flet-app/pyproject.toml +9 -0
- {flet_easy-0.2.8.dev1 → flet_easy-0.2.8.dev2}/uv.lock +481 -87
- flet_easy-0.2.8.dev1/tests/flet-app/models/__init__.py +0 -1
- flet_easy-0.2.8.dev1/tests/flet-app/models/connection.py +0 -7
- flet_easy-0.2.8.dev1/tests/flet-app/models/methods.py +0 -29
- flet_easy-0.2.8.dev1/tests/flet-app/models/models.py +0 -16
- flet_easy-0.2.8.dev1/tests/flet-app/pyproject.toml +0 -28
- flet_easy-0.2.8.dev1/tests/flet-app/storage/data/.gitkeep +0 -0
- flet_easy-0.2.8.dev1/tests/flet-app/storage/temp/.gitkeep +0 -0
- {flet_easy-0.2.8.dev1 → flet_easy-0.2.8.dev2}/.gitignore +0 -0
- {flet_easy-0.2.8.dev1 → flet_easy-0.2.8.dev2}/.markdownlint.yaml +0 -0
- {flet_easy-0.2.8.dev1 → flet_easy-0.2.8.dev2}/.python-version +0 -0
- {flet_easy-0.2.8.dev1 → flet_easy-0.2.8.dev2}/CHANGELOG.md +0 -0
- {flet_easy-0.2.8.dev1 → flet_easy-0.2.8.dev2}/CONTRIBUTING.md +0 -0
- {flet_easy-0.2.8.dev1 → flet_easy-0.2.8.dev2}/LICENSE +0 -0
- {flet_easy-0.2.8.dev1 → flet_easy-0.2.8.dev2}/README.md +0 -0
- {flet_easy-0.2.8.dev1 → flet_easy-0.2.8.dev2}/docs/add-pages/by-means-of-functions.md +0 -0
- {flet_easy-0.2.8.dev1 → flet_easy-0.2.8.dev2}/docs/add-pages/in-automatic.md +0 -0
- {flet_easy-0.2.8.dev1 → flet_easy-0.2.8.dev2}/docs/add-pages/through-classes.md +0 -0
- {flet_easy-0.2.8.dev1 → flet_easy-0.2.8.dev2}/docs/add-pages/through-decorators.md +0 -0
- {flet_easy-0.2.8.dev1 → flet_easy-0.2.8.dev2}/docs/assets/gifs/ControlResponse.gif +0 -0
- {flet_easy-0.2.8.dev1 → flet_easy-0.2.8.dev2}/docs/assets/gifs/Use-class-new-page.gif +0 -0
- {flet_easy-0.2.8.dev1 → flet_easy-0.2.8.dev2}/docs/assets/gifs/app-example.gif +0 -0
- {flet_easy-0.2.8.dev1 → flet_easy-0.2.8.dev2}/docs/assets/gifs/fs-init.gif +0 -0
- {flet_easy-0.2.8.dev1 → flet_easy-0.2.8.dev2}/docs/assets/gifs/jwt-app.gif +0 -0
- {flet_easy-0.2.8.dev1 → flet_easy-0.2.8.dev2}/docs/assets/gifs/jwt-web.gif +0 -0
- {flet_easy-0.2.8.dev1 → flet_easy-0.2.8.dev2}/docs/assets/gifs/on_keyboard.gif +0 -0
- {flet_easy-0.2.8.dev1 → flet_easy-0.2.8.dev2}/docs/assets/gifs/protected-route.gif +0 -0
- {flet_easy-0.2.8.dev1 → flet_easy-0.2.8.dev2}/docs/assets/gifs/route-advanced.gif +0 -0
- {flet_easy-0.2.8.dev1 → flet_easy-0.2.8.dev2}/docs/assets/gifs/route-custom.gif +0 -0
- {flet_easy-0.2.8.dev1 → flet_easy-0.2.8.dev2}/docs/assets/gifs/route-simple.gif +0 -0
- {flet_easy-0.2.8.dev1 → flet_easy-0.2.8.dev2}/docs/assets/gifs/share-data.gif +0 -0
- {flet_easy-0.2.8.dev1 → flet_easy-0.2.8.dev2}/docs/assets/gifs/use-example.gif +0 -0
- {flet_easy-0.2.8.dev1 → flet_easy-0.2.8.dev2}/docs/assets/gifs/view-config.gif +0 -0
- {flet_easy-0.2.8.dev1 → flet_easy-0.2.8.dev2}/docs/assets/images/app-api.png +0 -0
- {flet_easy-0.2.8.dev1 → flet_easy-0.2.8.dev2}/docs/assets/images/favicon.png +0 -0
- {flet_easy-0.2.8.dev1 → flet_easy-0.2.8.dev2}/docs/assets/images/funtion_add_page.png +0 -0
- {flet_easy-0.2.8.dev1 → flet_easy-0.2.8.dev2}/docs/assets/images/logo.png +0 -0
- {flet_easy-0.2.8.dev1 → flet_easy-0.2.8.dev2}/docs/assets/images/on-resize.png +0 -0
- {flet_easy-0.2.8.dev1 → flet_easy-0.2.8.dev2}/docs/assets/images/run_view.png +0 -0
- {flet_easy-0.2.8.dev1 → flet_easy-0.2.8.dev2}/docs/assets/images/struct-views.png +0 -0
- {flet_easy-0.2.8.dev1 → flet_easy-0.2.8.dev2}/docs/assets/images/v0.2.0/FletEasy.png +0 -0
- {flet_easy-0.2.8.dev1 → flet_easy-0.2.8.dev2}/docs/assets/images/v0.2.0/export_asgi.png +0 -0
- {flet_easy-0.2.8.dev1 → flet_easy-0.2.8.dev2}/docs/assets/images/v0.2.0/fastapi_run.png +0 -0
- {flet_easy-0.2.8.dev1 → flet_easy-0.2.8.dev2}/docs/assets/images/v0.2.0/method_run.png +0 -0
- {flet_easy-0.2.8.dev1 → flet_easy-0.2.8.dev2}/docs/assets/images/v0.2.0/struct-app.png +0 -0
- {flet_easy-0.2.8.dev1 → flet_easy-0.2.8.dev2}/docs/assets/images/v0.2.0/template_dxs.png +0 -0
- {flet_easy-0.2.8.dev1 → flet_easy-0.2.8.dev2}/docs/assets/js/dynamic-year.js +0 -0
- {flet_easy-0.2.8.dev1 → flet_easy-0.2.8.dev2}/docs/basic-jwt.md +0 -0
- {flet_easy-0.2.8.dev1 → flet_easy-0.2.8.dev2}/docs/begin.md +0 -0
- {flet_easy-0.2.8.dev1 → flet_easy-0.2.8.dev2}/docs/cli-to-create-app.md +0 -0
- {flet_easy-0.2.8.dev1 → flet_easy-0.2.8.dev2}/docs/customized-app/control-view-configuration.md +0 -0
- {flet_easy-0.2.8.dev1 → flet_easy-0.2.8.dev2}/docs/customized-app/events.md +0 -0
- {flet_easy-0.2.8.dev1 → flet_easy-0.2.8.dev2}/docs/customized-app/general-settings.md +0 -0
- {flet_easy-0.2.8.dev1 → flet_easy-0.2.8.dev2}/docs/customized-app/page-404.md +0 -0
- {flet_easy-0.2.8.dev1 → flet_easy-0.2.8.dev2}/docs/customized-app/route-protection.md +0 -0
- {flet_easy-0.2.8.dev1 → flet_easy-0.2.8.dev2}/docs/data-sharing-between-pages.md +0 -0
- {flet_easy-0.2.8.dev1 → flet_easy-0.2.8.dev2}/docs/dynamic-routes.md +0 -0
- {flet_easy-0.2.8.dev1 → flet_easy-0.2.8.dev2}/docs/events/keyboard-event.md +0 -0
- {flet_easy-0.2.8.dev1 → flet_easy-0.2.8.dev2}/docs/events/on-resize.md +0 -0
- {flet_easy-0.2.8.dev1 → flet_easy-0.2.8.dev2}/docs/how-to-use.md +0 -0
- {flet_easy-0.2.8.dev1 → flet_easy-0.2.8.dev2}/docs/index.md +0 -0
- {flet_easy-0.2.8.dev1 → flet_easy-0.2.8.dev2}/docs/installation.md +0 -0
- {flet_easy-0.2.8.dev1 → flet_easy-0.2.8.dev2}/docs/middleware.md +0 -0
- {flet_easy-0.2.8.dev1 → flet_easy-0.2.8.dev2}/docs/overrides/main.html +0 -0
- {flet_easy-0.2.8.dev1 → flet_easy-0.2.8.dev2}/docs/ref.md +0 -0
- {flet_easy-0.2.8.dev1 → flet_easy-0.2.8.dev2}/docs/responsiveControlsy.md +0 -0
- {flet_easy-0.2.8.dev1 → flet_easy-0.2.8.dev2}/docs/run-the-app.md +0 -0
- {flet_easy-0.2.8.dev1 → flet_easy-0.2.8.dev2}/docs/stylesheets/extra.css +0 -0
- {flet_easy-0.2.8.dev1 → flet_easy-0.2.8.dev2}/docs/working-with-other-apps.md +0 -0
- {flet_easy-0.2.8.dev1 → flet_easy-0.2.8.dev2}/media/app-example.gif +0 -0
- {flet_easy-0.2.8.dev1 → flet_easy-0.2.8.dev2}/media/logo.png +0 -0
- {flet_easy-0.2.8.dev1 → flet_easy-0.2.8.dev2}/mkdocs.yml +0 -0
- {flet_easy-0.2.8.dev1 → flet_easy-0.2.8.dev2}/ruff.toml +0 -0
- {flet_easy-0.2.8.dev1 → flet_easy-0.2.8.dev2}/src/flet_easy/__init__.py +0 -0
- {flet_easy-0.2.8.dev1 → flet_easy-0.2.8.dev2}/src/flet_easy/auto_route.py +0 -0
- {flet_easy-0.2.8.dev1 → flet_easy-0.2.8.dev2}/src/flet_easy/cli/main.py +0 -0
- {flet_easy-0.2.8.dev1 → flet_easy-0.2.8.dev2}/src/flet_easy/datasy.py +0 -0
- {flet_easy-0.2.8.dev1 → flet_easy-0.2.8.dev2}/src/flet_easy/extra.py +0 -0
- {flet_easy-0.2.8.dev1 → flet_easy-0.2.8.dev2}/src/flet_easy/extrasJwt.py +0 -0
- {flet_easy-0.2.8.dev1 → flet_easy-0.2.8.dev2}/src/flet_easy/inheritance.py +0 -0
- {flet_easy-0.2.8.dev1 → flet_easy-0.2.8.dev2}/src/flet_easy/job.py +0 -0
- {flet_easy-0.2.8.dev1 → flet_easy-0.2.8.dev2}/src/flet_easy/jwt.py +0 -0
- {flet_easy-0.2.8.dev1 → flet_easy-0.2.8.dev2}/src/flet_easy/pagesy.py +0 -0
- {flet_easy-0.2.8.dev1 → flet_easy-0.2.8.dev2}/src/flet_easy/route.py +0 -0
- {flet_easy-0.2.8.dev1 → flet_easy-0.2.8.dev2}/src/flet_easy/view_404.py +0 -0
- {flet_easy-0.2.8.dev1 → flet_easy-0.2.8.dev2}/tests/flet-app/README.md +0 -0
- {flet_easy-0.2.8.dev1 → flet_easy-0.2.8.dev2}/tests/flet-app/assets/icon.png +0 -0
- {flet_easy-0.2.8.dev1 → flet_easy-0.2.8.dev2}/tests/flet-app/components/__init__.py +0 -0
- {flet_easy-0.2.8.dev1 → flet_easy-0.2.8.dev2}/tests/flet-app/components/counter.py +0 -0
- {flet_easy-0.2.8.dev1 → flet_easy-0.2.8.dev2}/tests/flet-app/components/custom.py +0 -0
- {flet_easy-0.2.8.dev1 → flet_easy-0.2.8.dev2}/tests/flet-app/components/drawer.py +0 -0
- {flet_easy-0.2.8.dev1 → flet_easy-0.2.8.dev2}/tests/flet-app/components/login.py +0 -0
- {flet_easy-0.2.8.dev1 → flet_easy-0.2.8.dev2}/tests/flet-app/components/register.py +0 -0
- {flet_easy-0.2.8.dev1 → flet_easy-0.2.8.dev2}/tests/flet-app/controllers/__init__.py +0 -0
- {flet_easy-0.2.8.dev1 → flet_easy-0.2.8.dev2}/tests/flet-app/controllers/counter.py +0 -0
- {flet_easy-0.2.8.dev1 → flet_easy-0.2.8.dev2}/tests/flet-app/core/__init__.py +0 -0
- {flet_easy-0.2.8.dev1 → flet_easy-0.2.8.dev2}/tests/flet-app/core/config.py +0 -0
- {flet_easy-0.2.8.dev1 → flet_easy-0.2.8.dev2}/tests/flet-app/core/sensitive.py +0 -0
- {flet_easy-0.2.8.dev1 → flet_easy-0.2.8.dev2}/tests/flet-app/views/counter.py +0 -0
- {flet_easy-0.2.8.dev1 → flet_easy-0.2.8.dev2}/tests/flet-app/views/dashboard.py +0 -0
- {flet_easy-0.2.8.dev1 → flet_easy-0.2.8.dev2}/tests/flet-app/views/index.py +0 -0
- {flet_easy-0.2.8.dev1 → flet_easy-0.2.8.dev2}/tests/flet-app/views/login.py +0 -0
- {flet_easy-0.2.8.dev1 → flet_easy-0.2.8.dev2}/tests/flet-app/views/share.py +0 -0
- {flet_easy-0.2.8.dev1 → flet_easy-0.2.8.dev2}/tests/flet-fastapi/assets/favicon.png +0 -0
- {flet_easy-0.2.8.dev1 → flet_easy-0.2.8.dev2}/tests/flet-fastapi/assets/icon.png +0 -0
- {flet_easy-0.2.8.dev1 → flet_easy-0.2.8.dev2}/tests/flet-fastapi/assets/icons/icon-192 - copia.png +0 -0
- {flet_easy-0.2.8.dev1 → flet_easy-0.2.8.dev2}/tests/flet-fastapi/assets/icons/icon-192.png +0 -0
- {flet_easy-0.2.8.dev1 → flet_easy-0.2.8.dev2}/tests/flet-fastapi/assets/icons/icon-512.png +0 -0
- {flet_easy-0.2.8.dev1 → flet_easy-0.2.8.dev2}/tests/flet-fastapi/assets/icons/icon-maskable-512.png +0 -0
- {flet_easy-0.2.8.dev1 → flet_easy-0.2.8.dev2}/tests/flet-fastapi/assets/icons/loading-animation.png +0 -0
- {flet_easy-0.2.8.dev1 → flet_easy-0.2.8.dev2}/tests/flet-fastapi/assets/index.html +0 -0
- {flet_easy-0.2.8.dev1 → flet_easy-0.2.8.dev2}/tests/flet-fastapi/assets/manifest.json +0 -0
- {flet_easy-0.2.8.dev1 → flet_easy-0.2.8.dev2}/tests/flet-fastapi/controllers/__init__.py +0 -0
- {flet_easy-0.2.8.dev1 → flet_easy-0.2.8.dev2}/tests/flet-fastapi/controllers/contador.py +0 -0
- {flet_easy-0.2.8.dev1 → flet_easy-0.2.8.dev2}/tests/flet-fastapi/core/__init__.py +0 -0
- {flet_easy-0.2.8.dev1 → flet_easy-0.2.8.dev2}/tests/flet-fastapi/core/config.py +0 -0
- {flet_easy-0.2.8.dev1 → flet_easy-0.2.8.dev2}/tests/flet-fastapi/main.py +0 -0
- {flet_easy-0.2.8.dev1 → flet_easy-0.2.8.dev2}/tests/flet-fastapi/model/__init__.py +0 -0
- {flet_easy-0.2.8.dev1 → flet_easy-0.2.8.dev2}/tests/flet-fastapi/model/contador.py +0 -0
- {flet_easy-0.2.8.dev1 → flet_easy-0.2.8.dev2}/tests/flet-fastapi/views/counter.py +0 -0
- {flet_easy-0.2.8.dev1 → flet_easy-0.2.8.dev2}/tests/flet-fastapi/views/index.py +0 -0
- {flet_easy-0.2.8.dev1 → flet_easy-0.2.8.dev2}/tests/flet-fastapi/views/login.py +0 -0
- {flet_easy-0.2.8.dev1 → flet_easy-0.2.8.dev2}/tests/flet-fastapi/views/on_keyboard.py +0 -0
- {flet_easy-0.2.8.dev1 → flet_easy-0.2.8.dev2}/tests/flet-fastapi/views/pubsub.py +0 -0
- {flet_easy-0.2.8.dev1 → flet_easy-0.2.8.dev2}/tests/flet-fastapi/views/resize.py +0 -0
- {flet_easy-0.2.8.dev1 → flet_easy-0.2.8.dev2}/tests/flet-fastapi/views/response.py +0 -0
- {flet_easy-0.2.8.dev1 → flet_easy-0.2.8.dev2}/tests/flet-fastapi/views/share_data.py +0 -0
- {flet_easy-0.2.8.dev1 → flet_easy-0.2.8.dev2}/tests/flet-fastapi/views/task.py +0 -0
- {flet_easy-0.2.8.dev1 → flet_easy-0.2.8.dev2}/tests/flet-fastapi/views/test.py +0 -0
- {flet_easy-0.2.8.dev1 → flet_easy-0.2.8.dev2}/tests/routing.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
Metadata-Version: 2.
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
2
|
Name: flet-easy
|
|
3
|
-
Version: 0.2.8.
|
|
3
|
+
Version: 0.2.8.dev2
|
|
4
4
|
Summary: ⚡Flet-Easy is a user-friendly add-on package for Flet, offering a cleaner code structure with numerous customizable features like JWT, routers, decorators, middleware and more.
|
|
5
5
|
Project-URL: Homepage, https://github.com/Daxexs
|
|
6
6
|
Project-URL: Repository, https://github.com/Daxexs/flet-easy
|
|
@@ -8,6 +8,7 @@ Project-URL: Documentation, https://daxexs.github.io/flet-easy
|
|
|
8
8
|
Project-URL: Changelog, https://github.com/Daxexs/flet-easy/blob/main/CHANGELOG.md
|
|
9
9
|
Author-email: Daxexs <Daxexsdev@gmail.com>
|
|
10
10
|
License: apache-2.0
|
|
11
|
+
License-File: LICENSE
|
|
11
12
|
Keywords: app python,fast flet,flet,flet easy,flet easy fastapi,flet easy mvc,flet easy route,flet jwt,flet middleware,flet mvc,flet route,flutter python,python,python web template,web application
|
|
12
13
|
Classifier: Programming Language :: Python :: 3
|
|
13
14
|
Classifier: Programming Language :: Python :: 3.8
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[project]
|
|
2
2
|
name = "flet-easy"
|
|
3
|
-
version = "0.2.8.
|
|
3
|
+
version = "0.2.8.dev2"
|
|
4
4
|
description = "⚡Flet-Easy is a user-friendly add-on package for Flet, offering a cleaner code structure with numerous customizable features like JWT, routers, decorators, middleware and more."
|
|
5
5
|
authors = [{ name = "Daxexs", email = "Daxexsdev@gmail.com" }]
|
|
6
6
|
|
|
@@ -61,5 +61,9 @@ build-backend = "hatchling.build"
|
|
|
61
61
|
fs = "flet_easy.cli.main:run"
|
|
62
62
|
|
|
63
63
|
[dependency-groups]
|
|
64
|
-
test = [
|
|
64
|
+
test = [
|
|
65
|
+
"ruff>=0.3.4",
|
|
66
|
+
"flet[all]>=0.25.1",
|
|
67
|
+
"tortoise-orm>=0.22.2",
|
|
68
|
+
]
|
|
65
69
|
docs = ["mkdocs-material>=9.5.17", "mike>=2.0.0"]
|
|
@@ -7,6 +7,7 @@ from collections import deque
|
|
|
7
7
|
from functools import wraps
|
|
8
8
|
from pathlib import Path
|
|
9
9
|
from typing import Any, Callable, Dict, List, Optional
|
|
10
|
+
from warnings import warn
|
|
10
11
|
|
|
11
12
|
from flet import View
|
|
12
13
|
|
|
@@ -155,6 +156,37 @@ class FletEasy:
|
|
|
155
156
|
|
|
156
157
|
# -------------------------------------------------------------------
|
|
157
158
|
# -- initialize / Supports async
|
|
159
|
+
def __run(self, page: Page):
|
|
160
|
+
"""Initialize FletEasy configuration"""
|
|
161
|
+
return FletEasyX(
|
|
162
|
+
page=page,
|
|
163
|
+
route_prefix=self.__route_prefix,
|
|
164
|
+
route_init=self.__route_init,
|
|
165
|
+
route_login=self.__route_login,
|
|
166
|
+
config_login=self.__config_login,
|
|
167
|
+
pages=self.__pages,
|
|
168
|
+
page_404=self.__page_404,
|
|
169
|
+
view_data=self.__view_data,
|
|
170
|
+
view_config=self.__view_config,
|
|
171
|
+
config_event_handler=self.__config_event,
|
|
172
|
+
on_resize=self.__on_resize,
|
|
173
|
+
on_Keyboard=self.__on_Keyboard,
|
|
174
|
+
secret_key=self.__secret_key,
|
|
175
|
+
auto_logout=self.__auto_logout,
|
|
176
|
+
middleware=self.__middlewares,
|
|
177
|
+
).run()
|
|
178
|
+
|
|
179
|
+
def start(self, page: Page):
|
|
180
|
+
"""Start the app in the main function"""
|
|
181
|
+
return self.__run(page)
|
|
182
|
+
|
|
183
|
+
def get_app(self):
|
|
184
|
+
"""Return the app function main"""
|
|
185
|
+
|
|
186
|
+
def main(page: Page):
|
|
187
|
+
self.__run(page)
|
|
188
|
+
|
|
189
|
+
return main
|
|
158
190
|
|
|
159
191
|
def run(
|
|
160
192
|
self,
|
|
@@ -173,27 +205,14 @@ class FletEasy:
|
|
|
173
205
|
"""* Execute the app. | Soporta async, fastapi y export_asgi_app."""
|
|
174
206
|
|
|
175
207
|
def main(page: Page):
|
|
176
|
-
|
|
177
|
-
page=page,
|
|
178
|
-
route_prefix=self.__route_prefix,
|
|
179
|
-
route_init=self.__route_init,
|
|
180
|
-
route_login=self.__route_login,
|
|
181
|
-
config_login=self.__config_login,
|
|
182
|
-
pages=self.__pages,
|
|
183
|
-
page_404=self.__page_404,
|
|
184
|
-
view_data=self.__view_data,
|
|
185
|
-
view_config=self.__view_config,
|
|
186
|
-
config_event_handler=self.__config_event,
|
|
187
|
-
on_resize=self.__on_resize,
|
|
188
|
-
on_Keyboard=self.__on_Keyboard,
|
|
189
|
-
secret_key=self.__secret_key,
|
|
190
|
-
auto_logout=self.__auto_logout,
|
|
191
|
-
middleware=self.__middlewares,
|
|
192
|
-
)
|
|
193
|
-
|
|
194
|
-
app.run()
|
|
208
|
+
self.__run(page)
|
|
195
209
|
|
|
196
210
|
if fastapi:
|
|
211
|
+
warn(
|
|
212
|
+
"Avoid using the 'fastapi' parameter in the 'run()' method, instead it is better to use the 'get_app()' method.",
|
|
213
|
+
category=DeprecationWarning,
|
|
214
|
+
stacklevel=2,
|
|
215
|
+
)
|
|
197
216
|
return main
|
|
198
217
|
try:
|
|
199
218
|
return app(
|
|
Binary file
|
|
@@ -28,7 +28,7 @@ class LoginC:
|
|
|
28
28
|
)
|
|
29
29
|
|
|
30
30
|
if username and password:
|
|
31
|
-
if not check_user
|
|
31
|
+
if not e.page.run_task(check_user, User(username=username, password=password)).result():
|
|
32
32
|
self.data.page.snack_bar = ft.SnackBar(
|
|
33
33
|
content=ft.Text("User does not exist"), action="Alright!", open=True
|
|
34
34
|
)
|
|
@@ -27,7 +27,7 @@ class RegisterC:
|
|
|
27
27
|
)
|
|
28
28
|
|
|
29
29
|
if username and password:
|
|
30
|
-
if not add_user
|
|
30
|
+
if not e.page.run_task(add_user, User(username=username, password=password)).result():
|
|
31
31
|
self.data.page.snack_bar = ft.SnackBar(
|
|
32
32
|
content=ft.Text("The user already exists"), action="Alright!", open=True
|
|
33
33
|
)
|
|
@@ -1,14 +1,16 @@
|
|
|
1
1
|
from pathlib import Path
|
|
2
2
|
|
|
3
|
+
import flet as ft
|
|
3
4
|
from core.config import ConfigApp
|
|
4
5
|
|
|
5
6
|
# from core.sensitive import PRIVATE_KEY, PUBLIC_KEY
|
|
6
7
|
from core.sensitive import SECRET_KEY
|
|
7
|
-
from models import
|
|
8
|
+
from models.connection import db_init
|
|
9
|
+
from tortoise import run_async
|
|
8
10
|
|
|
9
11
|
import flet_easy as fs
|
|
10
12
|
|
|
11
|
-
|
|
13
|
+
run_async(db_init())
|
|
12
14
|
|
|
13
15
|
app = fs.FletEasy(
|
|
14
16
|
route_init="/home",
|
|
@@ -57,4 +59,4 @@ ConfigApp(app)
|
|
|
57
59
|
|
|
58
60
|
""" [If you have any problem - build web]
|
|
59
61
|
Use ft.app(target=app.run(fastapi=true)) when compiling web statica. """
|
|
60
|
-
app.run()
|
|
62
|
+
ft.app(app.run(fastapi=True))
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
from pathlib import Path
|
|
2
|
+
|
|
3
|
+
from tortoise import Tortoise
|
|
4
|
+
|
|
5
|
+
path = Path(__file__).parents[1] / "assets"
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
async def db_init():
|
|
9
|
+
await Tortoise.init(
|
|
10
|
+
db_url=f"sqlite://{path}/database.db",
|
|
11
|
+
modules={"models": ["models.models"]},
|
|
12
|
+
)
|
|
13
|
+
await Tortoise.generate_schemas()
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
async def db_close():
|
|
17
|
+
await Tortoise.close_connections()
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
# from tortoise import run_async
|
|
2
|
+
from tortoise.exceptions import DoesNotExist, IntegrityError
|
|
3
|
+
|
|
4
|
+
from models.connection import db_close, db_init
|
|
5
|
+
from models.models import User
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
async def add_user(user: User):
|
|
9
|
+
try:
|
|
10
|
+
await db_init()
|
|
11
|
+
await User.create(username=user.username, password=user.password)
|
|
12
|
+
|
|
13
|
+
# run_async(x())
|
|
14
|
+
return True
|
|
15
|
+
except IntegrityError:
|
|
16
|
+
return False
|
|
17
|
+
finally:
|
|
18
|
+
await db_close()
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
async def check_user(user: User):
|
|
22
|
+
try:
|
|
23
|
+
await db_init()
|
|
24
|
+
user_check = await User.get(username=user.username)
|
|
25
|
+
return user_check.password == user.password
|
|
26
|
+
except DoesNotExist:
|
|
27
|
+
return False
|
|
28
|
+
finally:
|
|
29
|
+
await db_close()
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
async def delete_user(user: User):
|
|
33
|
+
try:
|
|
34
|
+
await db_init()
|
|
35
|
+
await User.filter(User.username == user.username).delete()
|
|
36
|
+
except IntegrityError:
|
|
37
|
+
return False
|
|
38
|
+
finally:
|
|
39
|
+
await db_close()
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
from tortoise import fields
|
|
2
|
+
from tortoise.models import Model
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
class User(Model):
|
|
6
|
+
id = fields.IntField(pk=True)
|
|
7
|
+
username = fields.CharField(max_length=255, unique=True)
|
|
8
|
+
password = fields.CharField(max_length=255)
|
|
9
|
+
|
|
10
|
+
def __str__(self):
|
|
11
|
+
return f"User(id={self.id}, username={self.username})"
|