環境:
1、python 3.6.2
2、安裝django:pip install django==1.10.3
*下面以開發一個簡單的用戶簽到系統介紹Django的使用
創建Django項目:
命令行創建django項目步驟:
A django-admin startproject guest(project名)
B 進入guest目錄
C python3 manage.py startapp sign(創建APP,多次執行會生成多個app)
用PyCharm打開guest目錄,目錄結構如下圖:
目錄說明:
guest: 項目的容器。
manage.py: 一個實用的命令行工具,可讓你以各種方式與該 Django 項目進行交互。
guest/__init__.py: 一個空文件,告訴 Python 該目錄是一個 Python 包。
guest/settings.py: 全局配置文件;包括Django 模塊應用配置,數據庫配置,模板配置等。
guest/urls.py: 路由配置文件。
guest/wsgi.py: 一個 WSGI 兼容的 Web 服務器的入口,以便運行你的項目。
migrations/:用於記錄 models 中數據的變更。
admin.py:映射 models 中的數據到 Django 自帶的 admin 后台。
apps.py:在新的 Django 版本中新增,用於應用程序的配置。
models.py:創建應用程序數據表模型(對應數據庫的相關操作)。
tests.py:創建 Django 測試。
views.py:控制向前端顯示哪些數據。
接下來,進入guest目錄輸入以下命令,啟動服務器:
python3 manage.py runserver
Django 默認會通過本機的 8000 端口來啟動項目,如果你的當前環境該端口號被占用了,也可以在啟動時指定 IP 地址和端口號。
python3 manage.py runserver 127.0.0.1:8001
打開瀏覽器,訪問:http://127.0.0.1:8001
看到以上頁面,說明Django已經開始工作了。
環境已經就緒,下面進入真正的項目應用開發過程
1、配置一下 guest/settings.py 文件,將 sign 應用添加到項目中。
2、打開 guest/urls.py 文件添加用戶登錄頁面的路由。
3、打開../sign/views.py 文件創建 index 函數。
定義 index 函數,並通過 HttpResponse 類向頁面返回字符串“Hello django”。 HttpResponse 類存在 django.http.HttpResponse 中,以字符串的形式傳遞給前端頁面數據。
4、啟動django執行程序
A、pycharm下可直接啟動
B、命令行執行:python manage.py runserver 127.0.0.1:8001
訪問127.0.0.1:8001/index
5、使用模板(Templates)
現在用 HTML 頁面來替代“Hello django”字符串,那么處理方式也會有所不同。
在應用 sign/目錄下創建 templates/index.html 文件。
修改視圖文件 views.py,這里拋棄 HttpResponse 類,轉而使用 Django 的 render 函數。該函數的第一個參數是請求對象的,第二個參 數返回一個 index.html 頁面
再次訪問127.0.0.1:8001/index,效果如下圖
總結一下,Django的工作流可以概括成下圖:
需要說明的是,這個處理流程並非 Django 的完整處理過程,其中最主要的就是缺失了數據層(model) 的操作。
我理解views文件在Django中非常重要,它是連接頁面與數據的中間紐帶。拿登錄的例子來講,用戶在頁面上輸入了用戶名和密碼點擊登錄。那么 request 請求會由視圖層views來接收,如何提取出用戶名和密碼的數據,如何用這些數據去查詢數據庫,再如何將登錄成功的頁面返回給用戶,這些全部由視圖層views來完成。
與大多數的Web端開發框架一樣,Django開發同樣使用MVC模式。
M ,數據存取部分,由 Django 數據庫層處理,本章要講述的內容。
V ,選擇顯示哪些數據要顯示以及怎樣顯示的部分,由視圖和模板處理。
C ,根據用戶輸入委派視圖的部分,由 Django 框架根據 URLconf 設置,對給定 URL 調用適當的 Python 函數。
由於 C 由框架自行處理,而 Django 里更關注的是模型(Model)、模板(Template)和視圖(Views), Django 也被稱為 MTV 框架 。
在 MTV 開發模式中:
M 代表模型(Model),即數據存取層。 該層處理與數據相關的所有事務: 如何存取、如何驗證有效
T 代表模板(Template),即表現層。 該層處理與表現相關的決定: 如何在頁面或其他類型文檔中進行顯 示。
V 代表視圖(View),即業務邏輯層。 該層包含存取模型及調取恰當模板的相關邏輯。 你可以把它看 作模型與模板之間的橋梁。