2010-07-14 24 views
5

Đôi khi có ích khi chia sẻ các hằng số nhất định giữa các tệp mã khác nhau trong một ứng dụng django.Django - Cách chia sẻ hằng số cấu hình trong ứng dụng?

Ví dụ:
- Tên hoặc vị trí của tập tin dump được sử dụng trong các module khác nhau \ lệnh vv
- chế độ Debug trên \ off cho toàn bộ ứng dụng
- Site cấu hình cụ thể

Điều gì sẽ là thanh lịch \ pythonic cách làm điều này?

Trả lời

0

Tạo mô-đun cấu hình.

Configuration.py: (trong thư mục nguồn dự án/ứng dụng của bạn)

MYCONST1 = 1 
MYCONST2 = "rabbit" 

nhập nó từ các tập tin nguồn khác:

from Configuration import MYCONST1,MYCONST2 
... 
6

Có đã là một settings.py tập tin dự án rộng. Đây là nơi hoàn hảo để đưa ra các quyết định tùy chỉnh của riêng bạn.

+0

Thật vậy, đó là lý do tại sao tôi được hỏi cụ thể về phạm vi ứng dụng – Jonathan

+0

@ Jonathan: Bạn đang tìm kiếm tệp cài đặt * ứng dụng cụ thể * chưa? Một cái gì đó mà sau này có thể được ghi đè trong tệp cài đặt dự án? –

+0

@ Jonathan, bạn có thể/nên đặt các cài đặt ứng dụng cụ thể trong settings.py, cuối cùng là một dự án được chạy trên máy chủ chứ không phải bản thân ứng dụng –

6

bạn có thể cung cấp các thiết lập trong settings.py của bạn như

MY_SETTING = 'value' 

và trong bất kỳ mô-đun bạn có thể lấy nó như

ứng dụng
from django.conf import settings 
settings.MY_SETTING 
0

Django có nghĩa là để được (nhiều hơn hoặc ít hơn) pluggable. Vì vậy, bạn không được phép hack vào mã của một ứng dụng để parametrize những gì bạn muốn (nó sẽ là khá lộn xộn nếu bạn phải làm điều này! Hãy tưởng tượng bạn muốn nâng cấp một ứng dụng bạn tải về trên internet ... bạn sẽ phải tái hack vào mã của phiên bản mới?!?).

Vì lý do này, bạn không nên thêm cài đặt cấp ứng dụng ở cấp ứng dụng, mà nên đặt chúng cùng nhau ở đâu đó trong toàn bộ dự án settings.py của bạn.

Các vấn đề liên quan