Khi phát triển trên các môi trường khác nhau, bạn có thể muốn chỉ định các giá trị cấu hình khác nhau cho từng môi trường. Máy tính phát triển ứng dụng sẽ không giống máy tính triển khai ứng dụng.
Đó là lúc biến môi trường phát huy tác dụng!
Trong hướng dẫn này, chúng ta sẽ nói về biến môi trường là gì và cách sử dụng. Chúng ta sẽ đi qua ví dụ biến môi trường Python để giúp bạn bắt đầu.
Biến môi trường là gì?
Biến môi trường là biến có giá trị được thiết lập bên ngoài chương trình.
Biến môi trường cho phép bạn đặt giá trị khác nhau cho một biến tùy thuộc vào môi trường bạn đang xây dựng ứng dụng.
Tại sao dùng biến môi trường?
Nhiều ứng dụng, đặc biệt là cộng tác, có nhiều môi trường khác nhau. Môi trường dùng cho kiểm thử, môi trường khác cho production, và môi trường khác cho development. Các môi trường này thường có giá trị cấu hình khác nhau cần thiết lập.
Khóa API (API keys) bạn dùng trong production có thể không giống những khóa dùng trên máy local. Bạn có thể dùng dữ liệu giả trên máy local khi xây dựng ứng dụng, nhưng điều này không phù hợp trong môi trường production.
Giá trị biến môi trường có thể thay đổi mà không thay đổi chương trình. Điều này nghĩa là bạn có thể dễ dàng triển khai thay đổi mã mà không phải thay thế giá trị cấu hình cho môi trường mới.
81% người tham gia cho biết họ cảm thấy tự tin hơn về cơ hội việc làm công nghệ sau khi tham gia bootcamp. Được ghép nối với bootcamp ngay hôm nay.
Sinh viên trung bình tốt nghiệp bootcamp mất chưa đến sáu tháng để chuyển đổi nghề nghiệp, từ khi bắt đầu bootcamp đến khi tìm được việc đầu tiên.
Biến môi trường cũng dùng cho mục đích bảo mật. Viết khóa API và giá trị cấu hình bên trong chương trình chính có thể rủi ro vì mọi người trong dự án đều thấy. Nếu bạn khai báo giá trị trong biến môi trường, chỉ chương trình và lập trình viên đặt biến mới truy cập được.
Cách thiết lập biến môi trường
Hãy bắt đầu bằng tạo biến môi trường. Biến môi trường chỉ tồn tại cho đến khi phiên Python kết thúc. Nghĩa là khi bạn đóng trình thông dịch Python, biến sẽ được reset trong script Python.
Chúng ta xây dựng app dùng API Airtable. Chúng ta sẽ chia sẻ mã trên GitHub nên không muốn khóa API công khai. Để thêm khóa API vào mã mà không chia sẻ công khai, chúng ta dùng biến môi trường.
Bước đầu tiên là import thư viện os:
import os
Thư viện này chứa mã làm việc với biến môi trường Python. Tiếp theo, thiết lập biến môi trường:
Os.environ[“AIRTABLE_KEY”] = “YOUR_API_KEY”
Mã này đặt biến tên AIRTABLE_KEY. Giá trị là YOUR_API_KEY. Gán biến môi trường hoạt động tương tự như thay đổi giá trị trong từ điển (dictionary).
Bạn cần chỉ định tên biến muốn đặt hoặc thay đổi, theo sau dấu bằng, rồi giá trị muốn gán cho biến.
Cú pháp tương tự dùng để thay đổi biến môi trường:
os.environ[“AIRTABLE_KEY”] = “YOUR_API_KEY_2”
Giá trị khóa API đã thay thành YOUR_API_KEY_2.
Cách truy xuất biến môi trường
Chúng ta vừa đặt biến môi trường. Câu hỏi là: làm sao truy xuất giá trị? Đó là lúc dùng phương thức os.environ.get() .
Hãy truy xuất giá trị biến AIRTABLE_KEY:
api_key = os.environ.get("AIRTABLE_KEY") print(api_key) Chúng ta nói muốn lấy giá trị biến môi trường AIRTABLE_KEY . Gán giá trị này cho biến mới api_key và in ra console.
Mã trả về: YOUR_API_KEY_2.
Bạn có thể truy xuất danh sách tất cả biến môi trường đã đặt bằng cách in nội dung os.environ ra console:
print(os.environ)
Có một số biến môi trường mặc định trong Python. Nghĩa là in tất cả biến môi trường trong chương trình Python có thể trả về danh sách dài.
Cách xóa biến môi trường
Bạn có thể xóa biến môi trường trong dự án Python. Thực hiện bằng phương thức os.environ.pop(). Hãy xóa biến AIRTABLE_KEY:
os.environ.pop(“AIRTABLE_KEY”)
Mã này xóa biến môi trường AIRTABLE_KEY .
Việc này không thực tế nếu muốn xóa nhiều biến môi trường. Nếu bắt đầu instance mới của dự án, hoặc muốn reset tất cả biến môi trường trong phiên, bạn có thể có hàng chục giá trị cần ghi đè.
Đó là lúc phương thức clear() hữu ích. Hãy xóa tất cả biến môi trường trong phiên:
os.environ.clear() print(os.environ)
Mã này xóa giá trị tất cả biến môi trường. Sau đó, in danh sách tất cả biến môi trường trong phiên:
{}
Python đặt một số biến môi trường mặc định có thể cần cho dự án.
Bạn chỉ nên dùng clear() nếu chắc chắn không cần bất kỳ biến môi trường nào trong chương trình nữa. Dùng pop() ưu tiên hơn vì cụ thể hơn.
Cách đặt biến môi trường dùng Dotenv
Thư viện dotenv cung cấp nhiều hàm hữu ích quản lý biến môi trường.
Đáng chú ý, dotenv cho phép đọc biến môi trường từ file. Nghĩa là bạn không cần khai báo chúng trong shell Python.
Đọc biến môi trường từ file module tiện lợi hơn nếu bạn có nhiều giá trị đọc. Cũng dễ quản lý biến hơn nếu cần thay đổi giá trị.
Để làm việc với gói dotenv, cần cài đặt. Có thể dùng easy_install hoặc pip.
Hãy bắt đầu bằng định nghĩa biến môi trường. Tạo file tên .env. Có thể tạo từ dòng lệnh dùng touch:
touch .env
Mở file .env và thêm nội dung:
AIRTABLE_KEY=YOUR_API_KEY_3
Biến môi trường gán như bất kỳ biến nào. Bên trái dấu bằng là tên biến. Bên phải là giá trị biến lưu. Hai giá trị tách bằng dấu bằng.
Tiếp theo, nạp biến vào file:
from dotenv import load_dotenv load_dotenv()
Mã này import phương thức load_dotenv() từ thư viện dotenv và thực thi. Điều này đọc tất cả biến trong file .env vào môi trường.
Tiếp theo, thử truy xuất biến dùng thư viện os:
import os api_key = os.environ.get("AIRTABLE_KEY") print(api_key) Mã trả về: YOUR_API_KEY_3. Khóa API đặt trong file .env. Phương thức load_dotenv() nạp biến môi trường và làm cho chúng có thể truy cập qua os.environ.
Kết luận
Biến môi trường là giá trị định sẵn dùng để cấu hình giá trị bên ngoài chương trình. Chúng thường dùng để thiết lập các môi trường khác nhau, do đó có tên là biến môi trường.
Biến môi trường là cách an toàn đặt giá trị bí mật. Bạn không muốn thêm trực tiếp khóa API vào mã ứng dụng vì ai xem ứng dụng đều đọc được. Bạn đặt trong biến môi trường để chỉ bạn và chương trình thấy giá trị.
Bây giờ bạn đã sẵn sàng làm việc với biến môi trường trong mã Python như chuyên nghiệp!