Mục đích của apps.py trong Django 1.9 là gì?


Câu trả lời:


136

Mục đích của apps.pytập tin:

Tập tin này được tạo để giúp người dùng bao gồm bất kỳ cấu hình ứng dụng nào cho ứng dụng. Sử dụng điều này, bạn có thể cấu hình một số thuộc tính của ứng dụng.

Từ Application Configurationtài liệu:

Các đối tượng cấu hình ứng dụng lưu trữ siêu dữ liệu cho một ứng dụng. Một số thuộc tính có thể được cấu hình trong các lớp con AppConfig. Những người khác được thiết lập bởi Django và chỉ đọc.

Ví dụ từ các tài liệu:

Giả sử bạn đang tạo một ứng dụng có thể cắm được gọi "Rock ’n’ roll", sau đó để cung cấp tên thích hợp cho quản trị viên, chúng tôi có thể thực hiện như sau:

Trong rock_n_rollứng dụng, chúng tôi tạo một RockNRollConfiglớp AppConfig.

#rock_n_roll/apps.py
from django.apps import AppConfig

class RockNRollConfig(AppConfig): # Our app config class
    name = 'rock_n_roll'
    verbose_name = "Rock ’n’ roll"

Chúng tôi có thể làm cho ứng dụng của bạn tải AppConfiglớp con này theo mặc định bằng cách chỉ định tệp default_app_configtrong rock_n_roll/__init__.pytệp.

# rock_n_roll/__init__.py    
default_app_config = 'rock_n_roll.apps.RockNRollConfig'

Làm điều này sẽ gây ra RockNRollConfigđược sử dụng khi INSTALLED_APPSchỉ chứa 'rock_n_roll'. Điều này cho phép chúng tôi sử dụng các AppConfigtính năng mà không yêu cầu người dùng cập nhật INSTALLED_APPScài đặt của họ .


Đáng buồn thay, tôi đã không nhận được câu trả lời của bạn
hspandher

2
without requiring our users to update their INSTALLED_APPS setting.: Điều này có nghĩa là gì: Về cơ bản nếu tôi không làm default_app_config = 'rock_n_roll.apps.RockNRollConfig'thì tôi phải đề cập đến trong INSTALLED_APPSdefault_app_config = 'rock_n_roll.apps.RockNRollConfig'
Santhosh Yedidi

15

Đây là nơi được đề xuất để đặt cấu hình ứng dụng của bạn . Tính năng này đã có ở đây từ 1.7, nhưng để thúc đẩy việc sử dụng nó và cho phép cấu hình dễ dàng hơn, apps.pytệp đã được thêm vào mẫu ứng dụng mặc định.

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.