Đăng nhập

Bài 31: Làm API với Flask – Biến Python thành một dịch vụ web mini

Khi Python… có thể nghetrả lời qua internet

Bạn tưởng tượng thử nè:

  • Bạn có một file dữ liệu → Và bạn muốn người khác truy cập từ xa
  • Bạn có một hàm xử lý → Và bạn muốn biến nó thành một địa chỉ web mà bất kỳ ai cũng có thể gọi đến
  • Bạn đang làm việc nhóm → Và bạn muốn tạo ra một API nho nhỏ để chia sẻ dữ liệu giữa frontend và backend

Chào mừng bạn đến với Flask – framework siêu nhẹ và siêu dễ của Python, dùng để xây dựng APIweb app nhỏ gọn cực nhanh!


Mục tiêu bài học

  • Hiểu API là gì và Flask giúp gì
  • Cài đặt và chạy Flask cơ bản
  • Tạo các route (/) để phản hồi nội dung
  • Trả về JSON thay vì HTML
  • Nhận dữ liệu từ người dùng (GET/POST)
  • Làm API demo trả điểm thi từ tên học sinh

1. API là gì?

API là viết tắt của Application Programming Interface – nghĩa là giao diện để chương trình khác có thể giao tiếp với chương trình của bạn.

Nghĩ đơn giản: Bạn viết 1 đoạn code → Người khác không cần xem code, chỉ cần gọi đúng địa chỉ URL và nhận được phản hồi dữ liệu.


2. Cài Flask

pip install flask

3. Chạy Flask cơ bản

from flask import Flask

app = Flask(__name__)

@app.route("/")
def home():
    return "Chào bạn đến với API Python!"

if __name__ == "__main__":
    app.run(debug=True)

📌 Chạy file, bạn sẽ thấy:
→ Mở trình duyệt vào http://127.0.0.1:5000/
→ Và dòng chữ “Chào bạn đến với API Python!” hiện ra.

Chúc mừng! Bạn vừa tạo API đầu tiên!


4. Trả dữ liệu JSON

from flask import jsonify

@app.route("/thongtin")
def thongtin():
    du_lieu = {
        "ten": "Linh",
        "diem": 9.0
    }
    return jsonify(du_lieu)

📌 Truy cập http://127.0.0.1:5000/thongtin sẽ trả:

{
  "ten": "Linh",
  "diem": 9.0
}

5. API có tham số trên URL

@app.route("/diem/<ten>")
def tra_diem(ten):
    ds = {
        "Nam": 8.5,
        "Linh": 9.0,
        "Tùng": 7.5
    }
    return jsonify({ten: ds.get(ten, "Không tìm thấy")})

📌 Truy cập http://127.0.0.1:5000/diem/Linh → trả {"Linh": 9.0}
📌 Truy cập http://127.0.0.1:5000/diem/Tèo → trả {"Tèo": "Không tìm thấy"}


6. Nhận dữ liệu từ phương thức POST

from flask import request

@app.route("/cong", methods=["POST"])
def cong():
    data = request.get_json()
    tong = data["a"] + data["b"]
    return jsonify({"ket_qua": tong})

📌 Gửi từ Postman hoặc code khác:

{
  "a": 5,
  "b": 7
}

→ Trả về: {"ket_qua": 12}


7. Bài tập thực chiến

Bài 1: Tạo API /sinhvien/<ten> trả điểm từ 1 danh sách giả lập
Bài 2: Tạo API /nhanvien POST thông tin tên + lương, trả lại tiền thưởng (10%)
Bài 3: Tạo API /tonghop đọc từ file diem.json và trả về trung bình cộng các điểm


Bạn đã học được

  • Flask là cách đơn giản để tạo API từ Python
  • Tạo route, nhận tham số, phản hồi JSON
  • Làm backend siêu nhẹ, dễ tích hợp với JS, web, mobile app
  • Nền tảng để bạn tự làm REST API, form xử lý, dashboard dữ liệu
  • Đưa chương trình Python của bạn ra thế giới qua HTTP

Bạn đã biết cách biến hàm Python thành dịch vụ web

Và bài học tiếp theo sẽ càng “ảo diệu” hơn… Gửi email tự động bằng Python – Chương trình biết gửi thư chào hỏi, báo lỗi, báo cáo!

Thảo luận

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *

Đăng ký nhận tin mới

Nhận bài học, tài nguyên và cơ hội việc làm qua email hàng tuần.

Chúng tôi cam kết không spam. Bạn có thể hủy bất cứ lúc nào.