Đây là một bài viết cũ hơn nhưng tôi nghĩ rằng nếu tôi thêm library
nó hữu ích, nó sẽ đơn giản hóa mọi thứ.
Sử dụng django-configuration
Bắt đầu nhanh
pip install django-configurations
Sau đó phân lớp các lớp cấu hình.Configuration được bao gồm trong settings.py của dự án của bạn hoặc bất kỳ mô-đun nào khác mà bạn đang sử dụng để lưu trữ các hằng số cài đặt, ví dụ:
# mysite/settings.py
from configurations import Configuration
class Dev(Configuration):
DEBUG = True
Đặt DJANGO_CONFIGURATION
biến môi trường thành tên của lớp bạn vừa tạo, ví dụ: trong ~/.bashrc
:
export DJANGO_CONFIGURATION=Dev
và DJANGO_SETTINGS_MODULE
biến môi trường thành đường dẫn nhập mô-đun như bình thường, ví dụ: trong bash:
export DJANGO_SETTINGS_MODULE=mysite.settings
Ngoài ra, cung cấp --configuration
tùy chọn khi sử dụng các lệnh quản lý Django dọc theo các dòng của --settings
tùy chọn dòng lệnh mặc định của Django , ví dụ:
python manage.py runserver --settings=mysite.settings --configuration=Dev
Để kích hoạt Django để sử dụng cấu hình của bạn bây giờ bạn phải sửa đổi của bạn manage.py hoặc wsgi.py kịch bản sử dụng các phiên bản django-cấu hình của các chức năng khởi động thích hợp, ví dụ như một điển hình manage.py sử dụng django-cấu hình sẽ trông như thế này:
#!/usr/bin/env python
import os
import sys
if __name__ == "__main__":
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'mysite.settings')
os.environ.setdefault('DJANGO_CONFIGURATION', 'Dev')
from configurations.management import execute_from_command_line
execute_from_command_line(sys.argv)
Lưu ý ở dòng 10, chúng tôi không sử dụng công cụ chung django.core.management.execute_from_command_line
mà thay vào đó configurations.management.execute_from_command_line
.
Điều tương tự cũng áp dụng cho tệp wsgi.py của bạn , ví dụ:
import os
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'mysite.settings')
os.environ.setdefault('DJANGO_CONFIGURATION', 'Dev')
from configurations.wsgi import get_wsgi_application
application = get_wsgi_application()
Ở đây chúng tôi không sử dụng django.core.wsgi.get_wsgi_application
chức năng mặc định mà thay vào đó configurations.wsgi.get_wsgi_application
.
Đó là nó! Bây giờ bạn có thể sử dụng dự án của mình với management.py và máy chủ kích hoạt WSGI yêu thích của mình.