🎯 1. Mục tiêu
-
Chuyển sang dùng SQLAlchemy ORM để dễ quản lý model
-
Viết API
/api/studentshỗ trợ:-
/api/students?name=An→ tìm theo tên -
/api/students?page=2&size=5→ phân trang -
/api/students?min_score=7→ lọc theo điểm
-
Chuyển sang dùng SQLAlchemy ORM để dễ quản lý model
Viết API /api/students hỗ trợ:
/api/students?name=An → tìm theo tên
/api/students?page=2&size=5 → phân trang
/api/students?min_score=7 → lọc theo điểm
Dùng SQLite database thay vì CSV
Lưu dữ liệu sinh viên (id, name, score) vào DB
Truy xuất bằng Flask API
Trực quan hóa bằng Chart.js (biểu đồ realtime)
Tạo biểu đồ cột (bar chart) điểm sinh viên ngay trong trang web
Dữ liệu lấy từ REST API Flask (/api/students)
Biểu đồ cập nhật mỗi 5 giây → hiệu ứng realtime
Giao diện nhập tên + điểm sinh viên
Dữ liệu gửi về Flask API qua fetch()
Hiển thị danh sách sinh viên lấy từ API
Không cần reload trang (AJAX-style)
Giao diện nhập tên + điểm sinh viên
Dữ liệu gửi về Flask API qua fetch()
Hiển thị danh sách sinh viên lấy từ API
Không cần reload trang (AJAX-style)
REST API (Representational State Transfer) cho phép:
Giao tiếp giữa các hệ thống qua HTTP
Truyền và nhận dữ liệu bằng JSON
Dùng các phương thức HTTP chuẩn:
GET: lấy dữ liệu
POST: thêm dữ liệu
PUT: cập nhật dữ liệu
DELETE: xóa dữ liệu
Xây một ứng dụng web cho phép:
✅ Nhập tên và điểm sinh viên qua form HTML
✅ Hiển thị danh sách điểm dưới dạng bảng HTML
✅ Lưu dữ liệu vào file CSV
✅ Không cần cơ sở dữ liệu – xử lý dữ liệu bằng pandas