第四篇:Web框架 - Django

穆晨發表於2017-05-20

前言

       Django是一個開放原始碼的Web應用框架,由Python寫成。它和J2EE一樣,採用了MVC的軟體設計模式,即模型M,檢視V和控制器C。

       本文將講解DJango框架,並從實際應用的角度講解一個DJango專案,此專案架構的網站可遠端獲取MySQL資料庫資料並展示到網頁上。

Django框架 (引用自百度百科)

       Django是一個基於MVC構造的框架。但是在Django中,控制器接受使用者輸入的部分由框架自行處理,所以Django裡更關注的是模型(Model)、模板(Template)和檢視(Views),稱為MTV模式。它們各自的職責如下:

       

       需要說明的是Django將MVC中的檢視進一步分解為Django檢視和Django模板兩個部分,分別決定 “展現哪些資料” 和 “如何展現”。這使得Django的模板可以根據需要隨時替換,而不僅僅限制於內建的模板。

       至於MVC控制器部分,由Django框架的URLconf來實現。URLconf機制是使用正規表示式匹配URL,然後呼叫合適的Python函式。URLconf對於URL的規則沒有任何限制,你完全可以設計成任意的URL風格,不管是傳統的,RESTful的,或者是另類的。

       資料存取層的工作任務則是完成ORM表物件到關聯式資料庫表物件的對映。對映建立好之後,在檢視層就能通過ORM機制獲取資料,並將資料傳遞到前端頁面。在使用者訪問網站的時候,控制器部分將負責執行指定的檢視層函式以顯示相關內容給使用者。

總體流程

1. 新建Django專案;
2. 執行命令 "python manage.py startapp APP名" 新建App;
3. 在專案包的 settings.py 檔案中 INSTALLED_APPS 變數中註冊 2 中生成的APP;
4. 在settings.py裡設定好編碼模式,時區,以及最重要的 - 繫結資料庫;
5. 在APP的modules裡定義好ORM表物件;
6. 在templates目錄內編寫模板;
7. 在APP的views裡面編寫模板顯示函式;
8. 在urls.py中關聯模板顯示函式和URL地址;
9. 釋出該網站。

基於Django框架的一個簡單資料庫網站示例

       專案介紹:架設一個簡單的網站,它能從本地區域網的另外一臺資料庫伺服器中讀取資料並展示在Web頁面。

第一步:新建Django專案:

       

       新建好的Django專案包含上述檔案。其中:

1. settings.py:相關的配置檔案
2. urls.py:URLconf,也即URL地址到前端顯示函式的對映關係配置檔案
3. wsgi.py:與Appach伺服器有關,本專案使用自帶的伺服器軟體,因此不去管它
4. templates:模板目錄。一般存放與前端顯示有關的html頁面。
5. manage.py:django提供的一些工具。通過【python manage.py 命令 引數】這樣的格式使用。

第二步:shell端執行命令manage.py startapp mysql_movieinfo_show,以新建一個APP - mysql_movieinfo_show:

       

       在mysql_movieinfo_show的APP包中,主要看如下檔案:

       models.py:定義ORM表物件;
       views:定義頁面顯示函式(這些函式通常會通過models.py的ORM表物件和資料庫建立聯絡,然後將其傳遞進templates目錄裡的前端頁面後返回)。

第三步:在專案包的 settings.py 檔案中 INSTALLED_APPS 變數中註冊 2 中生成的APP:

       

第四步:在settings.py裡設定好編碼模式,時區,以及最重要的 - 繫結資料庫:

       

       

       其中各個欄位的含義很直觀,就不解釋了。

第五步:在APP的modules裡定義好ORM表物件:

       

       這只是一個簡單的示例物件,實際應用中可以指定它對應的具體表名,每列對應的列名等資訊。如果不具體指定,則會根據預設規則進行ORM對映。

       特別特別要說明的是:如果你的表中沒有主鍵,Django會自動幫你生成一個id欄位。而如果原來的表中又沒有ID欄位的話,就會對映失敗。因此,表中最好指定主鍵吧。

第六步:在templates目錄內編寫一個模板,它的作用只是簡單的顯示傳遞給它的變數(本專案中此變數的內容為從遠端資料庫中讀取到的內容):

       

       關於如何格式化顯示傳遞進前端頁面的物件,請自行查閱相關文件。

       第七步:在APP的views裡面編寫模板顯示函式(需要進行ORM表物件操作並傳遞到 6 中建立的模板裡):

       

        第八步:在urls.py中關聯模板顯示函式和URL地址:

       

       其中的url地址族是通過正規表示式指定的。

       第九步:在shell端執行命令【python manage.py runserver 0.0.0.0:8000】釋出網站:

       

       釋出後,區域網內其他的機器可以通過地址【 http://本機IP:8000/movie_info 】來檢視資料庫伺服器的資訊了。

小結

       Django框架涉及到的知識非常多,MVC中每個模組都可以大書特書。

       這個小專案權當是個練手,熟悉下框架,為將來的實際專案做鋪墊。

      

相關文章