Mục lục
📝 Giới Thiệu
Khi phát triển ứng dụng với Flask – một framework Python phổ biến – bạn sẽ thường nghe đến tệp requirements.txt
. Đây là một phần quan trọng giúp dự án chạy mượt mà trên nhiều máy khác nhau. Vậy requirements.txt
là gì? Nó có bắt buộc không? Hãy cùng tìm hiểu.
📝 Requirements.txt Là Gì Trong Flask?
requirements.txt
là một tệp văn bản liệt kê tất cả các thư viện Python mà dự án của bạn phụ thuộc vào. Trong dự án Flask, tệp này giúp bạn cài đặt đúng phiên bản thư viện để đảm bảo ứng dụng chạy ổn định ở mọi môi trường – từ local đến production.
Flask==2.3.2
Flask-SQLAlchemy==3.0.5
python-dotenv==1.0.0
Mục đích chính là giúp bạn (hoặc người khác) cài đặt đúng và đầy đủ các thư viện chỉ với một dòng lệnh:
pip install -r requirements.txt
🎯 Vì Sao requirements.txt Quan Trọng Khi Làm Với Flask?
1. Tái tạo môi trường đồng nhất
Khi làm việc nhóm hoặc deploy server, bạn không muốn nghe câu: “Ơ sao máy anh lỗi Flask?”
File này đảm bảo mọi người đều dùng đúng phiên bản thư viện, tránh xung đột và bug vặt.
2. Tránh lỗi module không tồn tại
Không còn gặp lỗi như ModuleNotFoundError: No module named ‘flask’ hay lỗi không tương thích giữa các phiên bản thư viện.
3. Tiết kiệm thời gian cài đặt
Chỉ cần chạy một dòng lệnh duy nhất để cài đặt tất cả thư viện thay vì cài từng cái.
❓ Không Có requirements.txt Có Sao Không?
Câu trả lời là không bắt buộc, nhưng rất nên có. Nếu không có tệp này:
- Người khác không biết bạn dùng những thư viện nào.
- Việc deploy lên môi trường production trở nên phức tạp.
- Dễ gặp lỗi do khác phiên bản thư viện.
⚙️ Cách Tạo requirements.txt Tự Động
Nếu bạn đã cài đặt các thư viện trong môi trường ảo (venv
, conda
…), bạn có thể tạo file requirements.txt
nhanh chóng:
pip freeze > requirements.txt
Lệnh này sẽ xuất toàn bộ thư viện (và phiên bản) hiện đang cài trong môi trường, giúp tạo file chính xác và đầy đủ.
🛠️ Best Practice Khi Quản Lý Requirements.txt
- Luôn lock phiên bản: Viết rõ
Flask==2.3.2
thay vì chỉFlask
, tránh bug khi lib update. - Tách file riêng cho dev:
- requirements.txt: cho production
- requirements-dev.txt: chứa các công cụ dev như pytest, black, mypy…
- Không chỉnh tay file: Luôn dùng
pip freeze
từ môi trường ảo. - Dùng thêm pip-tools: Giúp quản lý dependency sạch, tạo file dễ đọc hơn
📦 Requirements.txt & Flask Trong Triển Khai Thực Tế
Trong môi trường thực tế (như Docker, VPS, Heroku), tệp requirements.txt là công cụ then chốt để:
- Tích hợp Flask với Gunicorn/uWSGI
- Tự động hóa quá trình build
- Giảm rủi ro lỗi dependency khi deploy
Ví dụ trong Dockerfile
:
COPY requirements.txt . RUN pip install -r requirements.txt
🚀 Kết Luận
Tệp requirements.txt
không bắt buộc trong Flask, nhưng là một tiêu chuẩn cần có trong mọi dự án Python chuyên nghiệp. Nó giúp đảm bảo tính ổn định, dễ dàng chia sẻ và triển khai dự án nhanh chóng.