Python Streamlit - framework dùng xây dựng ứng dụng web tương tác một cách dễ dàng

Python Streamlit là một framework mã nguồn mở dùng để xây dựng các ứng dụng web tương tác bằng Python một cách nhanh chóng và dễ dàng. Nó cho phép người phát triển tạo ra các ứng dụng web mà không cần có kiến thức sâu về frontend hoặc web development.

Streamlit giúp người dùng tạo ra các ứng dụng web từ các script Python thông thường, mà không cần phải viết mã HTML, CSS hoặc JavaScript. Bằng cách sử dụng Streamlit, bạn có thể tạo ra các ứng dụng web cho các mục đích như trình bày dữ liệu, thống kê, visualizations, hoặc thậm chí là các ứng dụng machine learning và data science.

Streamlit cung cấp một loạt các tiện ích và hàm cho phép bạn thêm các thành phần tương tác như các widget đầu vào, biểu đồ, bảng, và văn bản trên trang web của bạn chỉ với một vài dòng mã Python.

Một trong những điểm mạnh của Streamlit là tính tương tác cao, cho phép người dùng cập nhật dữ liệu và thấy kết quả ngay lập tức trên trình duyệt web mà không cần phải tải lại trang. Điều này giúp tạo ra các ứng dụng web thân thiện với người dùng và dễ sử dụng.

Github : GitHub - streamlit/streamlit: Streamlit — A faster way to build and share data apps.

Python Streamlit có thể được sử dụng để xây dựng nhiều loại ứng dụng web tương tác. Dưới đây là một số ứng dụng phổ biến của Streamlit:

  1. Trình Bày Dữ Liệu và Thống Kê: Streamlit cho phép bạn tạo các ứng dụng web để trình bày và khám phá dữ liệu một cách tương tác. Bạn có thể thêm các biểu đồ, bảng, và widget đầu vào để người dùng có thể tương tác với dữ liệu.
  2. Ứng Dụng Machine Learning và Data Science: Streamlit là một công cụ mạnh mẽ cho việc xây dựng các ứng dụng web để triển khai các mô hình machine learning và các quy trình data science. Bạn có thể tạo ra các ứng dụng để dự đoán, phân loại, phân tích dữ liệu, và hiển thị kết quả một cách trực quan.
  3. Dashboard Đa Chức Năng: Streamlit cho phép bạn tạo ra các dashboard đa chức năng để giám sát, quản lý và hiển thị thông tin từ nhiều nguồn dữ liệu khác nhau. Điều này làm cho việc theo dõi các chỉ số hoặc quản lý dữ liệu trở nên dễ dàng hơn.
  4. Ứng Dụng Trình Bày Nội Dung: Bạn có thể sử dụng Streamlit để tạo ra các ứng dụng web để trình bày nội dung, bao gồm bài giảng, báo cáo, hoặc tài liệu hướng dẫn. Streamlit cho phép bạn tích hợp văn bản, hình ảnh, video và các phương tiện truyền thông khác để tạo ra các trang web tương tác.
  5. Ứng Dụng IoT và Quản Lý Thiết Bị: Streamlit cũng có thể được sử dụng để xây dựng các ứng dụng web cho Internet of Things (IoT) và quản lý thiết bị. Bạn có thể tạo ra các giao diện để giám sát và điều khiển các thiết bị IoT từ xa.

Dưới đây là một ví dụ về cách tạo một ứng dụng đơn giản với Streamlit. Ứng dụng này sẽ cho phép người dùng nhập một số liệu, và ứng dụng sẽ tính toán bình phương của số đó và hiển thị kết quả.

Bước 1: Cài đặt Streamlit

Nếu bạn chưa cài đặt Streamlit, bạn có thể cài đặt nó bằng cách chạy lệnh sau trong terminal hoặc command prompt:

pip install streamlit

Bước 2: Tạo file Python

Tạo một file Python mới, ví dụ app.py, và viết mã sau vào file đó:

import streamlit as st

# Tiêu đề của ứng dụng
st.title("Ứng dụng Tính Bình Phương")

# Lấy giá trị đầu vào từ người dùng
number = st.number_input("Nhập một số:", min_value=0.0, value=0.0)

# Tính toán bình phương
square = number ** 2

# Hiển thị kết quả
st.write(f"Bình phương của {number} là {square}")

Bước 3: Chạy ứng dụng

Lưu file app.py, sau đó mở terminal hoặc command prompt, điều hướng đến thư mục chứa file app.py, và chạy lệnh sau:

streamlit run app.py

Ứng dụng sẽ được khởi chạy trong trình duyệt web của bạn. Tại đây, bạn có thể nhập một số và xem kết quả bình phương của số đó được hiển thị ngay lập tức.

Giải thích mã nguồn:

  • import streamlit as st: Nhập thư viện Streamlit và đặt bí danh là st.
  • st.title("Ứng dụng Tính Bình Phương"): Thiết lập tiêu đề cho ứng dụng.
  • st.number_input("Nhập một số:", min_value=0.0, value=0.0): Tạo một thành phần nhập số liệu cho người dùng với giá trị mặc định là 0.0.
  • square = number ** 2: Tính toán bình phương của số mà người dùng đã nhập.
  • st.write(f"Bình phương của {number} là {square}"): Hiển thị kết quả tính toán.

Kết quả

Khi chạy ứng dụng, người dùng sẽ thấy một giao diện đơn giản với một ô nhập số liệu. Khi người dùng nhập một số vào ô đó, ứng dụng sẽ tự động tính và hiển thị bình phương của số đó.

Đây chỉ là một ứng dụng rất đơn giản, nhưng với Streamlit, bạn có thể mở rộng để tạo ra các ứng dụng phức tạp hơn, tích hợp biểu đồ, hiển thị dữ liệu, và tương tác với các mô hình học máy.