Skip to content

A Python package that creates user interfaces (websites and desktop apps) from HTML easily.

License

Notifications You must be signed in to change notification settings

mubarakalmehairbi/ToUI

Folders and files

NameName
Last commit message
Last commit date
May 23, 2023
Aug 2, 2023
Aug 2, 2023
Jun 2, 2023
Jul 29, 2023
Aug 2, 2023
May 23, 2023
May 29, 2023
Mar 28, 2023
Mar 28, 2023
Jul 29, 2023
Jul 31, 2023
Jul 29, 2023
Jul 29, 2023
Jul 29, 2023

Repository files navigation

ToUI Image

License PyPI - Downloads Latest version Docs

Overview

ToUI is a Python framework for creating user interfaces (web apps and desktop apps) from HTML code easily. It allows you to call your Python functions from HTML. No JavaScript knowledge is required, but some knowledge of HTML is usually required.

Why ToUI

  • Converts HTML and CSS files into a fast-responsive app using Python alone.
  • Simple to understand for programmers who only know Python and HTML.
  • Edit HTML files dynamically.
  • The method of creating websites and the method of creating desktop apps are similar, which makes it easy to convert a website to a desktop app and vice versa.
  • Contains features that will greatly support you while creating your apps, such as:
    • Sign-in feature
    • User-specific database
    • Uploading and downloading files
    • Google sign in (experimental)
    • Firebase (experimental)
    • Password protection for your app

How to install

Run this command:

pip install toui

To install only the required dependencies, run these commands:

pip install --no-deps toui
toui --minimal-reqs

How to create a basic website

Import the required classes:

from toui import Website, Page

Create a Website object:

app = Website(name=__name__, assets_folder="path/to/assets_folder",  secret_key="some secret key")

Create a Page and add it to the website:

main_page = Page(html_file="path/to/html", url="/")
app.add_pages(main_page)

Run the app:

if __name__ == "__main__":
    app.run()

The complete code:

from toui import Website, Page

app = Website(name=__name__, assets_folder="path/to/assets_folder", 
              secret_key="some secret key")

main_page = Page(html_file="path/to/html", url="/")
app.add_pages(main_page)

if __name__ == "__main__":
    app.run()

How to create a desktop app

Creating a desktop app is similar to creating a website. Only replace Website class with DesktopApp:

from toui import DesktopApp, Page

app = DesktopApp(name="MyApp", assets_folder="path/to/assets_folder")

main_page = Page(html_file="path/to/html", url="/")
app.add_pages(main_page)

if __name__ == "__main__":
    app.run()

Start with a template

To start with a basic template for a ToUI project. Run the command:

toui init

Alternatively, use this template.

Make the app responsive

Check this example and other examples to learn how to make the website / desktop app responsive.

Deploy the app

You can deploy the web app the same way you deploy a Flask app (How to deploy Flask app). The only difference is that you need to access the Flask object first:

app = Website(__name__)
flask_app = app.flask_app

Then you need to deploy the flask_app and not the app.

How to contribute

ToUI welcomes contribution, small or big. For anyone who wants to contribute please check the contribution page.

License and Copyrights

Copyrights (c) 2023 Mubarak Almehairbi. This package is licensed under the MIT license.

Documentation

You can find the documentation in this link: ToUI docs.