Sự khác nhau cơ bản giữa các câu lệnh nhập sau đây trong ứng dụng Django là gì?Django - Sự khác biệt giữa nhập khẩu django.conf.settings và cài đặt nhập
import settings
và
from django.conf import settings
Sự khác nhau cơ bản giữa các câu lệnh nhập sau đây trong ứng dụng Django là gì?Django - Sự khác biệt giữa nhập khẩu django.conf.settings và cài đặt nhập
import settings
và
from django.conf import settings
import settings
sẽ nhập khẩu các thiết lập (py) mô-đun của dự án Django của bạn (nếu bạn đang viết mã này từ gói "gốc" của ứng dụng của bạn, tất nhiên)
from django.conf import settings
sẽ nhập khẩu các thiết lập đối tượng từ gói django.conf (Django của pro các tệp được hỗ trợ). This is important, bởi vì
[..] lưu ý rằng mã của bạn không được nhập từ global_settings hoặc tệp cài đặt của riêng bạn. django.conf.settings tóm tắt các khái niệm về cài đặt mặc định và cài đặt cụ thể cho trang web; nó trình bày một giao diện duy nhất. Nó cũng decouples mã có sử dụng các thiết lập từ vị trí của các thiết lập của bạn.
UPDATE: nếu bạn muốn xác định một số cài đặt riêng, xem this part of the documentation
FYI, global_settings là một mô-đun bên trong gói django.conf. Như tài liệu nói, không sử dụng nó. – dgraziotin
Lưu ý rằng việc sử dụng '' 'từ cài đặt nhập django.conf''' là rất quan trọng nếu bạn muốn có thể ghi đè cài đặt trong quá trình kiểm tra đơn vị. – Joris
Cũng lưu ý rằng tất cả tên cài đặt ** phải là chữ hoa **. Tức là, nếu bạn có var 'my_var' trong cài đặt thì điều này sẽ thất bại:' từ cài đặt nhập django.conf' ... 'settings.my_var'. Nhưng nếu bạn đặt tên nó là 'MY_VAR' thì nó sẽ thành công! –
1 vì nó là một câu hỏi rất thú vị cho những người còn xa lạ với sự phát triển Django. – dgraziotin