Django 框架 介紹# 51

day51 Django


Django_daima

1.建立一個Django項目


1.建立Django啓動項


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前端

templates


1.Web框架.png
1.純手擼web框架.py
2.Django版本圖 以1.11版本爲主.png
2.類型轉換技巧.py
3.基於wsgiref擼.py
urls.py
views.py
建立應用.pngpython


myfirstdjangodemo

app01


migrations


__init__.py
admin.py
apps.py
models.py
tests.py
views.pyweb

myfirstdjangodemo


2. setting templates文件建立.png
2.1setting templates 空.png
2.2 settings yingyongzhuce.png
2.3應用註冊.png
__init__.py
settings.py
urls.py
wsgi.py數據庫

templates


4.get_db.html
11.登陸示例.htmldjango

manage.py


readme

  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     每一個學院都有本身獨立的功能
readme
相關文章
相關標籤/搜索