一、MVC和MTV框架
1.1 MVC:
Web服務器開發領域里著名的MVC模式,所謂MVC就是把Web應用分為模型(M),控制器(C)和視圖(V)三層,他們之間以一種插件式的、松耦合的方式連接在一起,模型負責業務對象與數據庫的映射(ORM),視圖負責與用戶的交互(頁面),控制器接受用戶的輸入調用模型和視圖完成用戶的請求,其示意圖如下所示:
Django的MTV模式本質上和MVC是一樣的,也是為了各組件間保持松耦合關系,只是定義上有些許不同,Django的MTV分別是值:
- M 代表模型(Model): 負責業務對象和數據庫的關系映射(ORM)。
- T 代表模板 (Template):負責如何把頁面展示給用戶(html)。
- V 代表視圖(View): 負責業務邏輯,並在適當時候調用Model和Template。
除了以上三層之外,還需要一個URL分發器,它的作用是將一個個URL的頁面請求分發給不同的View處理,View再調用相應的Model和Template,MTV的響應模式如下所示:
一般是用戶通過瀏覽器向我們的服務器發起一個請求(request),這個請求回去訪問視圖函數,(如果不涉及到數據調用,那么這個時候視圖函數返回一個模板也就是一個網頁給用戶),視圖函數調用模型,模型去數據庫查找數據,然后逐級返回,視圖函數把返回的數據填充到模板中空格中,最后返回網頁給用戶。
二、Django使用
2.1 安裝:pip3 install
django==1.11.9
2.2 創建一個django project:django
-
admin startproject mysite
創建了一個名為"mysite"的Django 項目
2.3 mysite的工程目錄結構:
- manage.py ----- Django項目里面的工具,通過它可以調用django shell和數據庫,啟動關閉項目與項目交互等。
- settings.py ---- 包含了項目的默認設置,包括數據庫信息,調試標志以及其他一些工作的變量。
- urls.py ----- 負責把URL模式映射到應用程序。
- wsgi.py ---- runserver命令就使用wsgiref模塊做簡單的web server,后面會看到renserver命令,所有與socket相關的內容都在這個文件里面了
2.4 在mysite目錄下創建應用:
方式一:python manage.py startapp blog # 通過執行manage.py文件來創建應用,執行這句話一定要注意,你應該在這個manage.py的文件所在目錄下執行這句話,因為其他目錄里面沒有這個文件
方式二:django-admin startapp blog # 通過執行django-admin文件來創建應用
2.5 啟動django項目: python manage.py runserver
8080 #
python manage.py runserver 127.0.0.1:8080,本機就不用寫ip地址了 如果連端口都沒寫,默認是本機的8000端口
這樣我們的django就啟動起來了!當我們訪問:http://127.0.0.1:8080/時就可以看到:
2.6 pycharm來創建Django工程:
2.7 配置中常見問題:
新建應用是需要設置settings.py文件:
settings配置文件里面有關於templates(放html文件的配置):
端口配置:
post請求的時候你會發現一個 Forbidden的錯誤:這是django給你加的一個csrf的認證,初始使用是如果不使用,可以直接先注釋掉
還記得django寫視圖函數的時候,有一個參數是必須要給的嗎,叫做request,如果你是post請求,那么就用request.POST,就能拿到post請求提交過來的所有數據(一個字典,然后再通過字典取值request.POST.get('username'),取出來的就是個字符串,你在那個字典里面看到的是{'username':['chao']},雖然看着是列表,但是request.POST.get('username')取出來的就是個字符串),通過request.GET就能拿到提交過來的所有數據,而且記着,每一個視圖函數都要給人家返回一些內容,用render或者HttpResponse等,其實render里面也是通過HttpResponse來返回內容,不然會報錯,錯誤是告訴你沒有返回任何內容:
2.8 數據庫遷移: