Skip to main content

Turning Python Scripts into Working Web Apps Quickly with Streamlit

 I just realized that I am using Streamlit since almost one year now, posted about in Twitter or LinkedIn several times, but never wrote a blog post about it before.

Communication in Data Science and Machine Learning is the key. Being able to showcase work in progress and share results with the business makes the difference. Verbal and non-verbal communication skills are important. Having some tool that could support you in this kind of conversation with a mixed audience that couldn't have a technical background or would like to hear in terms of results and business value would be of great help. I found that Streamlit fits well this scenario.

Streamlit is an Open Source (Apache License 2.0) Python framework that turns data or ML scripts into shareable web apps in minutes (no kidding). Python only: no front‑end experience required.

To start with Streamlit, just install it through pip (it is available in Anaconda too):

pip install streamlit

and you are ready to execute the working demo application:

streamlit hello

accessible to a web browser at the http://localhost:8501 address.

Streamlit is based on these three principles:

  • Scripting: building an app has to happen in a few lines of code. Developers can then see it automatically update as they iteratively save the source file. Typically you can implement a full working app writing around 50 lines of Python code.
  • Weave in interaction: adding a widget is the same as declaring a variable in Python. No need to do other things such as write a backend, define routes, handle HTTP requests, connect a frontend and write HTML, CSS and JavaScript.
  • Instant deployment: the Streamlit company offers a platform for rapid apps deployment and sharing and to enhance collaboration. It is possible anyway to deploy Streamlit web apps in different platforms such as Heroku or AWS but you have to manage SSO, security, scalability, etc. as required for the specific platform used.
All the major Python visualization libraries are compatible with Streamlit (I have worked mostly with Plotly and Matplotlib, but you can find dozens of examples with others). Same in terms of ML/DL frameworks (my experience so far is with Keras and TensorFlow, but these aren't the only ones supported). And of course the common libraries to any DS or ML project such as Numpy, Pandas or OpenCV can be used with Streamlit.
With Streamlit you can build really powerful apps: it maintains the promises you can read in the official website. Rather that going through the API, I prefer to share here some Streamlit apps available in my GitHub space, so that you can check yourself what it is possible to do with this framework:

Detection, segmentation and classification of materials inside mostly transparent vessels in images using a CNN: https://github.com/virtualramblas/streamlit-materials-segmentation-in-vessels



A simple frontend for a pre-trained MobileNet CNN model + OpenCV for face mask detection in images: https://github.com/virtualramblas/streamlit-face-mask-detector

What are you waiting for to start evaluating it and join the community?
I will write blog posts on specific Streamlit topics in the future. Stay tuned!

Comments

  1. Sharing thoughts and information is great and here we get impressive information by you. thanks for sharing with us.
    Data Science training in Sydney

    ReplyDelete
  2. Thank you for sharing this post with us I really appreciate your efforts if possible you can check out
    data science course in bangalore
    data science course

    ReplyDelete
  3. Nice Information About Web Application thanks for sharing this.

    ReplyDelete
  4. Hi, I read your whole blog. This is very nice. Good to know about the career in. Python Training & Certification , anyone interested can Python Training for making their career in this field.

    ReplyDelete
  5. 1. Thanks for sharing the best information and suggestions, I love your content, and they are very nice and very useful to us. If you are looking for the best Custom Web Application Development Services, then visit Symentix Technologies Private Limited. I appreciate the work you have put into this.

    ReplyDelete

Post a Comment

Popular posts from this blog

jOOQ: code generation in Eclipse

jOOQ allows code generation from a database schema through ANT tasks, Maven and shell command tools. But if you're working with Eclipse it's easier to create a new Run Configuration to perform this operation. First of all you have to write the usual XML configuration file for the code generation starting from the database: <?xml version="1.0" encoding="UTF-8" standalone="yes"?> <configuration xmlns="http://www.jooq.org/xsd/jooq-codegen-2.0.4.xsd">   <jdbc>     <driver>oracle.jdbc.driver.OracleDriver</driver>     <url>jdbc:oracle:thin:@dbhost:1700:DBSID</url>     <user>DB_FTRS</user>     <password>password</password>   </jdbc>   <generator>     <name>org.jooq.util.DefaultGenerator</name>     <database>       <name>org.jooq.util.oracle.OracleDatabase</name>     ...

TagUI: an Excellent Open Source Option for RPA - Introduction

 Photo by Dinu J Nair on Unsplash Today I want to introduce  TagUI , an RPA (Robotic Process Automation) Open Source tool I am using to automate test scenarios for web applications. It is developed and maintained by the AI Singapore national programme. It allows writing flows to automate repetitive tasks, such as regression testing of web applications. Flows are written in natural language : English and other 20 languages are currently supported. Works on Windows, Linux and macOS. The TagUI official documentation can be found  here . The tool doesn't require installation: just go the official GitHub repository and download the archive for your specific OS (ZIP for Windows, tar.gz for Linux or macOS). After the download is completed, unpack its content in the local hard drive. The executable to use is named  tagui  (.cmd in Windows, .sh for other OS) and it is located into the  <destination_folder>/tagui/src  directory. In order to ...