本文研究的主要是Django1.10文檔的深入學(xué)習(xí),Applications基礎(chǔ)部分的相關(guān)內(nèi)容,具體介紹如下。
Applications應(yīng)用
Django包含一個安裝的應(yīng)用程序的注冊表,存儲配置并提供內(nèi)省。 它還保留了可用模型的列表。
這個注冊表簡單稱為應(yīng)用程序,它可以在django.apps中使用:
>>> from django.apps import apps>>> apps.get_app_config('admin').verbose_name'Admin'

Projects and applications項目和應(yīng)用程序
術(shù)語項目描述了一個Django Web應(yīng)用程序。項目Python包主要由設(shè)置模塊定義,但通常包含其他內(nèi)容。例如,當(dāng)您運行django-admin startproject mysite時,您將得到一個mysite項目目錄,其中包含一個具有settings.py,urls.py和wsgi.py的mysite Python包。項目包通常被擴(kuò)展到包括與特定應(yīng)用程序無關(guān)的諸如固定裝置,CSS和模板之類的東西。
項目的根目錄(包含manage.py)的根目錄通常是未單獨安裝的所有項目應(yīng)用程序的容器。
術(shù)語應(yīng)用程序描述了一個提供一些功能的Python包。申請可以在各種項目中重復(fù)使用。
應(yīng)用程序包括模型,視圖,模板,模板標(biāo)簽,靜態(tài)文件,URL,中間件等的一些組合。它們通常連接到具有INSTALLED_APPS設(shè)置的項目中,并且可選地使用其他機(jī)制,例如URLconfs,MIDDLEWARE設(shè)置或模板繼承。
重要的是要了解Django應(yīng)用程序只是一組與框架的各個部分進(jìn)行交互的代碼。沒有應(yīng)用程序?qū)ο筮@樣的東西。但是,Django需要與安裝的應(yīng)用程序進(jìn)行交互,主要用于配置和內(nèi)省操作。這就是為什么應(yīng)用程序注冊表在每個安裝的應(yīng)用程序的AppConfig實例中維護(hù)元數(shù)據(jù)的原因。
沒有限制項目包不能被認(rèn)為是應(yīng)用程序,并且有模型等(這將需要將其添加到INSTALLED_APPS)。
Configuring applications配置應(yīng)用程序
要配置一個應(yīng)用程序,子類AppConfig,并將虛線路徑放在INSTALLED_APPS中的該子類中。
當(dāng)INSTALLED_APPS只包含應(yīng)用程序模塊的虛線路徑時,Django會檢查該模塊中的default_app_config變量。
如果定義了它,那該應(yīng)用程序的AppConfig子類的虛線路徑。
如果沒有default_app_config,Django使用基礎(chǔ)AppConfig類。
default_app_config允許早于Django 1.7的應(yīng)用程序(如django.contrib.admin)選擇加入AppConfig功能,而不需要用戶更新其INSTALLED_APPS。
新的應(yīng)用程序應(yīng)該避免使用default_app_config。 相反,它們應(yīng)該要求在INSTALLED_APPS中明確配置適當(dāng)?shù)腁ppConfig子類的虛線路徑。
對于應(yīng)用程序作者
新聞熱點
疑難解答