Input → logic → output
Web Báo Giá Lát Sàn
Ô nhập nhận số đo; nút bấm là thời điểm chạy logic; vùng kết quả cho người dùng thấy diện tích và báo giá. Kiểm tra dữ liệu nhập trước khi tính để tránh kết quả vô nghĩa.
length = st.number_input("Chiều dài")
width = st.number_input("Chiều rộng")
price = st.number_input("Đơn giá USD")
if st.button("Tính báo giá"):
sqft = length * width
st.write(sqft * price)
Hiển thị → lọc → quyết định
Dashboard Quản Lý
Table dành cho danh sách. Biểu đồ dành cho phân bố trạng thái. Bộ lọc giúp chủ thầu tập trung vào các công trình đang kẹt tiến độ mà không làm thay đổi dữ liệu gốc.
st.dataframe(projects)
st.bar_chart(status_counts)
status = st.selectbox(
"Lọc trạng thái", statuses
)
st.dataframe(projects[
projects["status"] == status
])
Web → SQLite
Thêm một bản ghi có trách nhiệm
Ở B23–B24, form không chỉ hiện thông báo thành công. Dữ liệu phải đi qua thao tác ghi vào SQLite, sau đó có thể đọc lại để danh sách phản ánh đúng trạng thái.
customer = {
"name": name,
"phone": phone,
"status": "Khảo sát"
}
save_to_sqlite(customer)
st.success("Đã lưu khách hàng")
Đèn cảnh báo
Đọc dashboard như người quản lý
Vùng đánh dấu công trình kẹt tiến độ là tín hiệu hành động: chọn điều kiện lọc, xem bản ghi liên quan, rồi cập nhật trạng thái qua luồng dữ liệu đã thiết kế.
st.metric("Đang kẹt",
stalled_count)
st.warning(
"Cần theo dõi hôm nay"
)