Skip to content

Create desktop applications with Flask!

License

Notifications You must be signed in to change notification settings

impubes/flaskwebgui

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

25 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

flaskwebgui Downloads

Create desktop applications with Flask!


Install

pip install flaskwebgui

Usage

from flask import Flask  
from flaskwebgui import FlaskUI #get the FlaskUI class


app = Flask(__name__)

# Feed it the flask app instance (check bellow what param you can add)
ui = FlaskUI(app) 


# do your logic as usual in Flask

@app.route("/")
def index():  
    return "It works!"



# call the 'run' method
ui.run()
 

Configurations

Default FlaskUI class parameters:

  • app, ==> flask class instance (required)
  • width=800 ==> default width 800
  • height=600 ==> default height 600
  • browser_path="", ==> full path to browser.exe ("C:/browser_folder/chrome.exe") (needed if you want to start a specific browser)
  • server="flask" ==> the default backend framework is flask, but you can add a function which starts the desired server for your choosed framework (bottle, django, web2py pyramid etc)
  • host="127.0.0.1" ==> specify other if needed
  • port=5000 ==> specify other if needed

Should work on windows/linux/mac with no isssues.

If browser is not found, this would be quick fix: FlaskUI (app, browser_path=r"path/to/chrome.exe")

The recommended way of using flaskwebgui

  • Download portable Chromium for the your targeted os

  • place the extracted portable app next to "main.py" file,

  • flaskwebgui will look for chrome.exe/.app/.sh

In this way when you distribute it, you don't need users to have chrome installed, it will work like a portable app.
Also, during development of your app do that in the normal way you do a Flask app without flaskwebgui. Use flaskwebgui only when you are finished the app(test the app) and ready to deploy.
flaskwebgui doesn't interfere with your way of doing a flask application it just helps converting it into a desktop app more easily with pyinstaller or pyvan

Distribution

You can distribute it as a standalone desktop app with pyinstaller or pyvan.

Credits

It's a combination of https://github.com/Widdershin/flask-desktop and https://github.com/ChrisKnott/Eel
flaskwebgui just uses threading to start a flask server and the browser in app mode (for chrome)
It has some advantages over flask-desktop because it doesn't use PyQt5, so you won't have any issues regarding licensing and over Eel because you don't need to learn any logic other than Flask.

About

Create desktop applications with Flask!

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 100.0%