Django

轉自https://www.cnblogs.com/feixuelove1009/p/5823135.html

https://www.cnblogs.com/LiCheng-/p/6920900.html

一、Django流程介紹

MVC是衆所周知的模式,即:將應用程序分解成三個組成部分:model(模型),view(視圖),和 controller(控制 器)。其中:
      M——管理應用程序的狀態(通常存儲到數據庫中),並約束改變狀態的行爲(或者叫做“業務規則”)。
      C——接受外部用戶的操作,根據操作訪問模型獲取數據,並調用“視圖”顯示這些數據。控制器是將“模型”和“視圖”隔離,併成爲二者之間的聯繫紐帶。
      V——負責把數據格式化後呈現給用戶。

Django也是一個MVC框架。但是在Django中,控制器接受用戶輸入的部分由框架自行處理,所以 Django 裏更關注的是模型(Model)、模板(Template)和視圖(Views),稱爲 MTV模式:

    M 代表模型(Model),即數據存取層。 該層處理與數據相關的所有事務: 如何存取、如何驗證有效性、包含哪些行爲以及數據之間的關係等。

    T 代表模板(Template),即表現層。 該層處理與表現相關的決定: 如何在頁面或其他類型文檔中進行顯示。

    V 代表視圖(View),即業務邏輯層。 該層包含存取模型及調取恰當模板的相關邏輯。 你可以把它看作模型與模板之間的橋樑。

 

二、Django項目實例

1. 程序安裝

  python3.5、pip3及pycharm專業版自行安裝。

(1)安裝Django:

  這裏只介紹較爲簡單的pip3命令安裝方式。

  win+r,調出cmd,運行命令:pip3 install django,自動安裝Pypi提供的最新版本。

 

安裝完成後如下圖所示:

(2)配置系統環境

成功安裝Django後,在下圖中的路徑可找到django-admin.exe文件,將它加入操作系統環境變量中。這樣在以後的調用會比較方便。

運行:django-admin help,能看到下面的內容表示OK。

 2. 創建django項目

  在linux等命令行界面下,使用django提供的命令和vim也能進行項目開發。但是,這裏推薦使用pycharm這個目前最好的python開發IDE

,它功能強大,界面友好。(下面所有的操作都在pycharm中進行。)

  點擊:file-->new project,出現下面的對話框。

選擇Django欄目,輸入項目名稱,這裏採用國際慣例的mysite。選擇python解釋器版本,點擊create創建。

Django將自動生成下面的目錄結構:

與項目同名的目錄中是配置文件,templates目錄是html文件存放也就是MTV中的T。manage.py是django項目管理文件。

3. 創建APP

  在每個django項目中可以包含多個APP,相當於一個大型項目中的分系統、子模塊、功能部件等等,相互之間比較獨立,但也有聯繫。

所有的APP共享項目資源。

  在pycharm下方的terminal終端中輸入命令:

  python manage.py startapp cmdb

  這樣就創建了一個叫做cmdb的APP,django自動生成“cmdb”文件夾。

 

4. 編寫路由

  路由都在urls文件裏,它將瀏覽器輸入的url映射到相應的業務處理邏輯。

  簡單的urls編寫方法如下圖:

5. 編寫業務處理邏輯

  業務處理邏輯都在views.py文件裏。

  通過上面兩個步驟,我們將index這個url指向了views裏的index()函數,它接收用戶請求,並返回一個“hello world”字符串。

6. 運行web服務

  現在我們已經可以將web服務運行起來了。

  命令行的方式是:python manage.py runserver 127.0.0.1:8000

  但在pycharm中,你可以這麼幹:

  在上部工具欄中找到下面圖示的圖標。

點擊下拉箭頭

點擊edit configurations

在host中填入:127.0.0.1   port中填入:8000

OK確定之後,點擊綠色的三角,web服務就運行起來了。

按圖所示,自動跳轉到瀏覽器程序界面。顯示的卻是下圖的404頁面:

修改一下url,添加“/index”,就一切ok了!

至此,一個最簡單的django編寫的web服務就啓動成功了。

7.  返回HTML文件

  上面我們返回給用戶瀏覽器的是什麼?一個字符串!實際上這肯定不行,通常我們都是將html文件返回給用戶。

  下面,我們寫這麼一個index.html文件:

  再修改一下views文件:

爲了讓django知道我們的html文件在哪裏,需要修改settings文件的相應內容。但默認情況下,它正好適用,你無需修改。

接下來,我們可以重新啓動web服務。在瀏覽器刷新一下,你會看到帶有樣式的“hello world”。

注:這裏有個小技巧,在多次頻繁重啓服務時,由於端口未釋放的原因,容易啓動不了服務,修改一下端口就OK了。

8. 使用靜態文件

  我們已經可以將html文件返還給用戶了,但是還不夠,前端三大塊,html、css、js還有各種插件,它們齊全才是一個完整

的頁面。在django中,一般將靜態文件放在static目錄中。接下來,在mysite中新建個static目錄。

你的CSS,JS和各種插件都可以放置在這個目錄裏。

爲了讓django找到這個目錄,依然需要對settings進行配置:

同樣,在index.html文件中,可以引入js文件了:

重新啓動web服務,刷新瀏覽器,查看結果。

9. 接收用戶發送的數據

  上面,我們將一個要素齊全的html文件返還給了用戶瀏覽器。但這還不夠,因爲web服務器和用戶之間沒有動態交互。

下面我們設計一個表單,讓用戶輸入用戶名和密碼,提交給index這個url,服務器將接收到這些數據。

  先修改index.html文件

然後修改views.py文件

此時 ,重啓web服務時,會出錯,因爲django有一個csrf跨站請求保護機制,我們暫時在settings文件中將它關閉,或者在form表單裏添加一個`{% csrf_token %}`標籤。這裏爲了演示方便,我們採用臨時關閉的方式。

再次進入瀏覽器,刷新頁面:

輸入點東西,然後我們在pycharm中可以看到相應的數據。

10. 返回動態頁面

  我們收到了用戶的數據,但返回給用戶的依然是個靜態頁面,通常我們會根據用戶的數據,進行處理後在返回給用戶。

這時候,django採用自己的模板語言,類似jinja2,根據提供的數據,替換掉html中的相應部分,詳細語法入門後再深入學習。

先改造views.py文件:

再改造index.html文件:

重啓服務,刷新瀏覽器:

可以看到,我們獲得了用戶實時輸入的數據,並將它實時展示在了用戶頁面上,這是個不錯的交互過程。

11. 使用數據庫

  流程走到這裏,django的MTV框架基本已經浮出水面了,只剩下最後的數據庫部分了。

  上面我們雖然和用戶交互得很好,但並沒有保存任何數據,頁面一旦關閉,或服務器重啓,一切都將回到原始狀態。

  使用數據庫是毫無疑問的,django通過自帶的ORM框架操作數據庫,並且自帶輕量級的sqlite3數據庫。下面我們來看一看:

  首先是註冊app:

不註冊它,你的數據庫就不知道該給哪個app創建表。

然後我們在settings中,配置數據庫相關的參數,如果使用自帶的sqlite,不需要修改。

 

 再編輯models.py文件,也就是MTV中的M。

這裏我們創建了2個字段,分別保存用戶的名字和密碼。

接下來要在pycharm的teminal中通過命令創建數據庫的表了。有2條命令,分別是:

python manage.py makemigrations

再輸入命令:python manage.py migrate

修改views.py中的業務邏輯

重啓web服務後,刷新瀏覽器頁面,之後和用戶交互的數據都能保存到數據庫中。任何時候都可以從數據庫中讀取數據,展示到頁面上。

至此,一個要素齊全,主體框架展示清晰的django項目完成了。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章