Django - Sự khác biệt giữa nhập django.conf.settings và cài đặt nhập


99

Sự khác biệt cơ bản giữa các câu lệnh nhập sau trong ứng dụng Django là gì?

import settings

from django.conf import settings

1
+1 vì đây là một câu hỏi rất thú vị cho những ai mới phát triển Django.

Câu trả lời:


134
import settings

Sẽ nhập mô-đun cài đặt (.py) của dự án Django của bạn (tất nhiên nếu bạn đang viết mã này từ gói "gốc" của ứng dụng)

from django.conf import settings

Sẽ nhập đối tượng cài đặt từ gói django.conf (các tệp được cung cấp của Django). Điều này rất quan trọng , 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 dành riêng cho trang web; nó trình bày một giao diện duy nhất. Nó cũng tách mã sử dụng cài đặt từ vị trí cài đặt của bạn.

CẬP NHẬT: nếu bạn muốn xác định một số cài đặt riêng, hãy xem phần này của tài liệu


4
FYI, global_settings là một mô-đun khác bên trong gói django.conf. Như tài liệu nói, không sử dụng nó.

3
Lưu ý rằng việc sử dụng from django.conf import settingslà rất quan trọng nếu bạn cũng muốn có thể ghi đè cài đặt trong quá trình thử nghiệm đơn vị.
Joris

4
Cũng lưu ý rằng tất cả các tên cài đặt phải là chữ hoa . Nghĩa là, nếu bạn có một var my_vartrong cài đặt của bạn thì đây sẽ thất bại: from django.conf import settings... settings.my_var. Nhưng nếu bạn đặt tên MY_VARnó sẽ thành công!
nik_m
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.