0.無啓動項,進入啓動頁.png
1.建立啓動項.png
2.templates文件建立.pnghtml
1.Django下載.png
2.2建立一個Django項目2.png
2.建立一個Django項目.png
3.mysite項目配置.png
4.建立Django應用.png
5.啓動django.png
6.啓動django成功.png
7.pycharm快捷建立djangoxm.png
8.2建立django項目和應用.png
8.快速建立django應用.png
DJango建立項目成功.png前端
1.Web框架.png
1.純手擼web框架.py
2.Django版本圖 以1.11版本爲主.png
2.類型轉換技巧.py
3.基於wsgiref擼.py
urls.py
views.py
建立應用.pngpython
__init__.py
admin.py
apps.py
models.py
tests.py
views.pyweb
2. setting templates文件建立.png
2.1setting templates 空.png
2.2 settings yingyongzhuce.png
2.3應用註冊.png
__init__.py
settings.py
urls.py
wsgi.py數據庫
4.get_db.html
11.登陸示例.htmldjango
1 Django 2 3 1.建議手擼(Django)版的Web框架 4 cs與bs 架構 5 1.客戶端 服務端 6 2.瀏覽器 服務端 7 本質:bs 也是 cs 8 9 HTTP協議 10 四大特性 11 1.基於TCP/IP做用於應用層的協議 12 2.基於請求響應 13 3.無狀態 14 cookie,session,token(攜帶狀態) 15 4.無鏈接 16 長連接websocket 17 18 數據格式 19 1.請求首行 20 2.請求頭 21 3.請求體 22 響應狀態碼 23 1xx 24 2xx 25 3xx 26 4xx 27 5xx 28 29 30 2.基於wsgiref模塊 及拆分紅不一樣的文件以後,加一個功能只須要在兩個地方修改代碼便可 31 1.urls.py 路由與視圖的對應關係 32 2.views.py 視圖函數 33 34 動靜態網頁 35 靜態網頁 36 數據是死的,萬年不變 37 動態網頁 38 數據不是寫死的 是動態獲取的 39 好比: 40 1.後端實時獲取當前時間"傳遞"給前端頁面展現 41 2.後端從數據庫獲取數據"傳遞"給前端頁面展現 42 傳遞給前端頁面 >>> 頁面渲染 43 44 3.jinja2 模塊 45 pip3 install jinja2 46 因爲flask框架是依賴於jinja2的 因此下載flask 框架也會自帶jinja2模塊 47 模板的渲染包含了模板語法 48 49 4.模板語法(貼近Python語法) 50 前端也可以使用後端的一些語法 操做後端傳入的數據 51 52 <p>{{data}}</p> 53 <p>{{data["username"]}}</p> 54 <p>{{data.password}}</p> 55 <p>{{data.get("hobby")}}</p> 56 {%for user_dict in user_list%} 57 <tr> 58 <td>{{user_dict.id}}</td> 59 <td>{{user_dict.name}}</td> 60 <td>{{user_dict.password}}</td> 61 </tr> 62 {%endfor%} 63 64 5.推導Django 原理 小結 65 1.純手擼Web框架 66 1.手動書寫socket代碼(服務器 HTTP協議 conn.send(b"HTTP/1.1 200 OK\r\n\r\n")) 67 2.手動處理http數據,獲取用戶訪問的url 68 data = conn.recv(1024) 69 current_path = data.split("\r\n")[0].split("")[1] 70 if current_path == "/index": 71 return [b"hello word"] 72 3.根據用戶訪問url 的不一樣 響應不一樣的結果 73 2.基於wsgiref模塊 幫助咱們處理socket 以及http數據 wsgiref 模塊 74 wsgiref 模塊 75 from wsgiref.simple_server import make_server 76 1.封裝了 socket的代碼 請求來的時候 解析http數據幫你打包成一個字典傳輸給你 便於你操做各項數據 77 def run(env,response): 78 "env 請求相關的數據" 79 "response 響應相關的數據" 80 response("200 OK",[]) #"200 OK" 至關於手擼服務器中的 b"HTTP/1.1 200 OK\r\n\r\n" 81 current_path = env.get("PATH_INFO") 82 2.響應走的時候 自動幫你把數據再打包成符合HTTP 協議格式的樣子 再返回給前端 83 if __name__ == '__main__': 84 啓動: 85 server = make_server('127.0.0.1',8080,run) 86 # 實時監測127.0.0.1:8080地址 一旦有客戶端來鏈接 會自動加括號調用run方法 87 server.serve_forever() # 啓動服務端 88 89 3.封裝路由與視圖函數對應關係 以及視圖函數文件 90 網站用到的全部的HTML文件所有放在templates文件夾 91 1.urls.py 路由與視圖對應關係 92 2.views.py 視圖函數(視圖函數/類) 93 3.templates 模板文件夾 94 4.基於jinja2實現模板的渲染 95 模板的渲染 96 from jinja2 import Template 97 date = f.read() 98 temp = Template(date) 99 res = temp.render(data=user_dict)# 將user_dict傳遞給前端頁面 前端頁面經過變量名data就可以獲取到該字典 100 後端生成好數據 經過某種方式傳遞 給前端頁面使用(前端頁面能夠基於模板語法更加快捷簡便使用後端傳過來的數據) 101 102 103 104 6.Web 框架 105 Python三大主流框架 106 1.Django:大而全 自帶的功能特別多 就相似於航空母艦, 107 缺點:有時候過於笨重 108 2.Flask 短小精悍 自帶功能特別少 所有依賴於第三方組件 109 flask 框架 第三方組件特別多 若是 把flask 第三方所有加起來 徹底能夠蓋過Django 110 缺點:比較受限於第三方的開發 111 3.Tornado 天生的異步非阻塞框架 速度特別快 可以抗住高併發 112 能夠開發新遊戲服務器 113 114 115 A.socket 116 B.路由和視圖函數 urls 117 C.模板語法 118 119 Django 120 A:用的別人的 wsgiref 121 B:本身寫的 122 C:本身寫的 123 124 Flask 125 A :用的別人的 wsgiref >>> werkzeug 126 B :本身寫的 127 C :用的別人的 jinja2 128 129 Tornado 130 A,B,C全都是本身寫的 131 132 7.Django 133 1.注意事項: 134 1.你的計算機名稱不能有中文 135 2.文件的命名儘可能也不要用中文 136 3.一個pycharm窗口下只能有一個項目 不要把多個項目放在一塊兒 137 138 2.Django版本問題 139 1.x 推薦 140 2.x 141 142 以Django1.11版本爲主, 143 3.django下載 144 pip3 install django==1.11.11 145 146 4.如何確認是否下載成功 147 命令行敲 django-admin 148 8.如何建立Django項目 149 命令行式 150 1.命令行建立Django項目 151 django-admin startproject 項目名 152 2.命令行建立django應用(一個應用對應一塊獨立的功能) 153 1.django-admin startapp 應用名 154 2.python manage.py startapp 應用名 155 3.命令行啓動django 156 python manage.py runserver 157 158 (******) 159 ps: 160 1.用命令行建立行django項目不會自動新建templates模板文件夾 161 2.須要你本身手動建立 而且須要你本身去settings.py文件中註冊該文件路徑 162 163 9.pycharm快捷方式 直接在pycharm中建立 164 165 (******) 166 建立的應用 必定要在settings中註冊 才能生效 不然沒法識別 167 168 169 9.django主要文件介紹 170 項目名文件 171 同名的項目文件夾 172 settings.py django暴露給用戶可配置的文件 173 urls.py 路由與視圖函數對應關係 174 manage.py django入口文件 175 應用文件夾 176 migrations文件夾 數據庫遷移記錄 177 admin.py django後臺管理 178 apps.py 應用註冊相關 179 models.py orm模型類 180 tests.py 測試文件 181 view.py 視圖文件 182 183 10.django小白必會的三板斧 184 HTTPResponse: 返回字符串 185 render 返回html頁面 而且可以給該頁面傳值 186 redirect:重定向 187 188 189 補充: 190 建立app 191 django-admin startapp app名(老男孩學員習慣性的起app01....) 192 python3 manage.py startapp app名 193 app名的文件夾 194 migrations 文件夾 數據庫操做記錄 195 __init__.py 196 apps.py 註冊app相關文件 197 models.py orm模型類相關 198 views.py 視圖函數(函數/類) 199 tests.py 測試相關 200 201 app概念 202 django項目就相似因而一所大學,app就是大學裏面不一樣的學院 203 每一個學院都有本身獨立的功能