Django是一個很是流行的用python編寫的Web框架,在使用Django以前,咱們須要瞭解一些基本的概念,這樣能夠在使用Django的時候對其有一個更加深刻的把握。本文主要介紹Django中兩個很是基礎但又是不少初學者不太明白的概念:project和app.css
Project
其實在計算機領域,要真正瞭解一個東西,莫過於親自去閱讀它的源代碼;同理,對於Django中的project和app,咱們也能夠採用相似的方法。咱們能夠經過命令:html
django-admin.py startproject mysite 來建立一個新的project,以後咱們能夠在當前目錄下看到以下目錄結構:python
mysite/web
manage.py數據庫
mysite/django
__init__.py編程
settings.pyapp
urls.py框架
wsgi.py函數
其中manage.py是在開發web項目時常常用到的工具,如:python manage.py runserver localhost:8000 ; python manage.py syndb 等等,而在內部的mysite目錄下放着四個py文件,其中__init__.py用於說明內部的mysite目錄是一個python模塊,打開settings.py文件,咱們能夠看到一些基本的配置信息,包括數據庫配置,時區,安裝的APP,中間件,日誌配置,以及一些基本的目錄配置等,其本質上至關於一個基本的web工程的全局配置。urls.py文件中包含一個urlpatterns變量,其實它就是一個URL Dispacher(URL分派器),用於在URL和實際的view之間創建一個映射。
App
在建立完project以後,咱們能夠經過命令:python manage.py startapp polls建立一個名叫polls的app,而後整個目錄結構變成以下所示:
mysite/
manage.py
mysite/
__init__.py
settings.py
urls.py
wsgi.py
polls/
__init__.py
models.py
views.py
test.py
很顯然,上述紅色部分是多出來的,即運行上述命令後作的一些事情, 其中 __init__.py用於說明polls目錄是一個python模塊,models.py中包含一系列的模型類,每一個模型類對應數據庫中的一個表,這之間的映射由Django來作,有關數據庫的配置在mysite/settings.py中。而views.py中包含的是對各個請求的處理邏輯,前面說的URL Dispacher即將URL請求映射到這個文件中的函數或類方法上。同時能夠在polls目錄下建立template目錄,而後將前臺的html,css,script等內容放置在這個目錄下,並在setttings.py文件添加相應的配置信息。因此,咱們其實能夠看到APP至關於一個相對獨立的功能模塊,其遵循的設計理念是MVT(相似MVC);在一個大型的Project中,能夠包含不少APP,並且每一個APP能夠在不一樣的Project中複用,這也符合Django的編程理念,即:不要作重複的事情。
綜上所述,project和APP的區別已經很明顯了,project包含一些全局配置,這些配置構成一個全局的運行平臺,各個APP都運行在這個全局的運行平臺上,而APP表明的是一個相對獨立的功能模塊,因此程序的邏輯都在APP中。