Hướng dẫn phát triển ứng dụng Web cơ bản với Python và Flask

Quá trình xây dựng một ứng dụng web bằng Python đòi hỏi việc thiết lập môi trường, lựa chọn framework và tổ chức mã nguồn hợp lý. Flask, một micro-framework của Python, là công cụ lý tưởng để khởi tạo các dịch vụ web nhờ kiến trúc tối giản và tính linh hoạt cao.

Thiết lập môi trường phát triển

Trước khi khởi tạo dự án, hệ thống cần được cài đặt Python và trình quản lý gói pip. Việc sử dụng môi trường ảo là tiêu chuẩn bắt buộc nhằm cách ly các thư viện phụ thuộc, tránh xung đột phiên bản giữa các dự án khác nhau.

python -m venv venv
source venv/bin/activate  # Áp dụng cho Linux/macOS
venv\Scripts\activate     # Áp dụng cho Windows

Sau khi môi trường ảo được kích hoạt, tiến hành cài đặt thư viện Flask:

pip install Flask

Cấu trúc thư mục dự án

Một cấu trúc tiêu chuẩn giúp phân tách rõ ràng giữa luồng xử lý logic, giao diện người dùng và các tài nguyên tĩnh:

flask_project/
│
├── static/          # Lưu trữ CSS, JavaScript, hình ảnh
├── templates/       # Chứa các tệp giao diện HTML
└── main.py          # Điểm khởi tạo và định tuyến của ứng dụng

Khởi tạo dịch vụ và định tuyến

Trong tệp main.py, chúng ta sẽ khởi tạo đối tượng Flask và định nghĩa các endpoint để tiếp nhận yêu cầu HTTP. Thay vì chỉ trả về chuỗi văn bản thuần túy, kiến trúc API hiện đại thường sử dụng định dạng JSON để trao đổi dữ liệu.

from flask import Flask, jsonify

# Khởi tạo đối tượng ứng dụng
web_service = Flask(__name__)

@web_service.route('/api/health')
def check_system_status():
    """Endpoint kiểm tra trạng thái hoạt động của dịch vụ."""
    response_payload = {
        "status": "operational",
        "code": 200,
        "message": "Hệ thống đang hoạt động bình thường."
    }
    return jsonify(response_payload)

Khởi chạy máy chủ Development

Flask tích hợp sẵn một máy chủ phát triển nội bộ phục vụ cho việc kiểm thử. Từ giao diện dòng lệnh tại thư mục gốc, thực thi lệnh sau để khởi động:

flask --app main.py run --debug

Khi truy cập vào địa chỉ http://127.0.0.1:5000/api/health trên trình duyệt, hệ thống sẽ phản hồi đối tượng JSON chứa thông tin trạng thái. Tham số --debug kích hoạt chế độ gỡ lỗi, cho phép tự động tải lại máy chủ mỗi khi mã nguồn thay đổi và hiển thị chi tiết các ngoại lệ (exceptions) nếu có lỗi xảy ra.

Triển khai trên môi trường Production

Máy chủ tích hợp của Flask không được thiết kế để xử lý lưu lượng truy cập lớn hoặc đảm bảo bảo mật ở cấp độ production. Khi đưa ứng dụng vào vận hành thực tế, cần sử dụng các WSGI server chuyên dụng như Gunicorn. Các tiến trình này thường được đặt phía sau một reverse proxy như Nginx để tối ưu hóa việc cân bằng tải và phân phối tệp tĩnh.

Cài đặt Gunicorn thông qua pip:

pip install gunicorn

Khởi chạy ứng dụng với 4 worker processes để xử lý các yêu cầu đồng thời:

gunicorn -w 4 -b 127.0.0.1:8000 main:web_service

Thẻ: python Flask gunicorn nginx wsgi

Đăng vào ngày 20 tháng 8 lúc 23:26