Hướng dẫn thiết lập cấu hình cơ bản cho ứng dụng Flask

Trong quá trình phát triển ứng dụng web với Flask, việc thiết lập cấu hình (configuration) là bước quan trọng để kiểm soát hành vi của hệ thống, đặc biệt là cách xử lý dữ liệu JSON và môi trường thực thi.

1. Các thiết lập cấu hình phổ biến

Thông thường, khi làm việc với các ngôn ngữ có bộ ký tự đặc biệt (như tiếng Việt hoặc tiếng Trung), Flask mặc định sẽ encode JSON sang mã ASCII. Để đảm bảo dữ liệu hiển thị đúng định dạng UTF-8, chúng ta cần tùy chỉnh các tham số sau:

from flask import Flask

app = Flask(__name__, template_folder='templates')

# Cấu hình hỗ trợ hiển thị ký tự UTF-8 trong phản hồi JSON
app.config["JSON_AS_ASCII"] = False
app.config["JSONIFY_MIMETYPE"] = "application/json; charset=utf-8"

Ngoài cách gán trực tiếp từng khóa, bạn cũng có thể sử dụng phương thức update để tối ưu hóa mã nguồn khi cần thiết lập nhiều tham số cùng lúc:

app.config.update(
    JSON_AS_ASCII=False,
    JSONIFY_MIMETYPE="application/json; charset=utf-8",
    DEBUG=True
)

2. Khởi chạy và gỡ lỗi (Debugging)

Để triển khai ứng dụng trong mạng nội bộ và hỗ trợ quá trình kiểm thử, bạn có thể tự động lấy địa chỉ IP của máy chủ và thiết lập chế độ Debug.

import socket

def lay_dia_chi_ip_noi_bo():
    ten_may = socket.gethostname()
    return socket.gethostbyname(ten_may)

if __name__ == "__main__":
    ip_he_thong = lay_dia_chi_ip_noi_bo()
    
    # Chạy Flask app với IP nội bộ và cổng tùy chỉnh
    # Chế độ debug cho phép tự động tải lại khi code thay đổi
    app.run(host=ip_he_thong, port=5000, debug=True)

3. Danh mục các tham số cấu hình tiêu chuẩn

Dưới đây là một số tham số quan trọng trong đối tượng config của Flask mà lập trình viên cần lưu ý:

  • DEBUG: Kích hoạt chế độ gỡ lỗi (Mặc định: False).
  • TESTING: Kích hoạt chế độ kiểm thử (Mặc định: False).
  • SECRET_KEY: Khóa bí mật dùng để mã hóa session và cookie.
  • PERMANENT_SESSION_LIFETIME: Thời gian tồn tại của session (Mặc định: 31 ngày).
  • MAX_CONTENT_LENGTH: Giới hạn dung lượng tối đa của request body (hữu ích khi upload file).
  • JSON_SORT_KEYS: Sắp xếp các khóa của JSON theo bảng chữ cái (Mặc định: True).
  • TEMPLATES_AUTO_RELOAD: Tự động tải lại template khi có sự thay đổi.

Việc hiểu rõ và áp dụng đúng các tham số này giúp ứng dụng Flask vận hành ổn định và bảo mật hơn trong các môi trường khác nhau.

Thẻ: Flask python Backend API web-development

Đăng vào ngày 13 tháng 11 lúc 20:23