This repo illustrates some differences between various web application frameworks. The purpose is to provide minimal, concrete examples of how to accomplish common development tasks in various python web application frameworks, and to use those examples to help people learn their APIs. The frameworks we have so far are:
- Each solution is contained within its own folder, one folder per framework
- To run a solution, navigate to its folder and install requirements with
pip install -r requirements.txt
- Run the app with the framework-specific command listed above
pip install -r requirements.txt
Framework | Command |
---|---|
Dash | python app.py |
Panel | panel serve app.py |
Streamlit | streamlit run app.py |
Shiny | shiny run app.py --launch-browser |
We welcome contributers of all forms, there is no real build process this repo, and submissions will be evaluated manually.
Please raise an issue to discuss and clarify the problem statement, and then submit a pull request with the problem statement in a README file. Ideally problems should have the following qualities:
- Problems should be small and clear
- Successful apps should stand alone and not require external APIs or system setup
- Problems should focus on the capabilities of the web framework
- For inspriation see 7guis or TodoMVC
We want only one solution per framework, but please submit PRs with either solutions from a new framework, or improvements to an the existing solution. Your solution should focus on the framework's capabilities, and ideally have fairly few dependencies. For example it's not a good idea to include a lot of JavaScript code in your Streamlit solution because that will tell the reader more about how to do something in JavaScript than it will about what they can do in Streamlit.