Python? web開發(fā)----->Django(視圖網(wǎng)頁模板和靜態(tài)文件處理)
一,根視圖網(wǎng)頁模板和靜態(tài)文件處理
根視圖:根管理項目中定義的視圖網(wǎng)頁,一般是所有子項目公共的網(wǎng)頁部分
注意:根管理項目[視圖處理函數(shù)][~數(shù)據(jù)模型]
(1)項目主目錄中,創(chuàng)建一個templates/文件夾,存放網(wǎng)頁文件
(2)項目主目錄中,創(chuàng)建一個static/文件夾,存放靜態(tài)文件
?????????? 靜態(tài)文件:HTML/css/js/jq/font/images/..
?????????? static/文件夾中,創(chuàng)建css/、js/、images/、..
?????????? static/js/文件夾中,lib/存放第三方js文件,app/存放自己開發(fā)的js文件
(3) 配置根視圖網(wǎng)頁文件夾
????????? settings.py-> TEMPLATES->DIRS->添加templates文件夾名稱
(4) 配置根視圖靜態(tài)文件文件夾
? ? ? ?? settings.py-> 添加STATICFILES_DIRS=[os.path.join(BASE_DIR, ‘static’)]
二,子項目網(wǎng)頁視圖配置和靜態(tài)文件的配置
(1)子項目中創(chuàng)建templates文件夾:用于存放網(wǎng)頁
(2)子項目中創(chuàng)建static文件夾:用于存放靜態(tài)文件
(3)其他配置:無
(4)Django會自動在子項目中查詢templates和static文件夾!
三,MVT處理模式:
(1)后端視圖處理函數(shù)中,傳遞數(shù)據(jù)給前端網(wǎng)頁,將數(shù)據(jù)包含在字典中直接傳遞
(2)前端網(wǎng)頁中展示數(shù)據(jù),展示變量中的數(shù)據(jù):{{變量}}
???????? 判斷條件:{% if 條件%} 展示的代碼{%endif%}
???????? 循環(huán)遍歷:{% for 變量?in 列表..%} 遍歷的代碼{%endfor%}
四,網(wǎng)頁怎么提交數(shù)據(jù):
HTTP1.1標準提供了8種請求方式:網(wǎng)頁發(fā)起的請求,向服務器請求數(shù)據(jù)
GET???????? ? ? ?? POST?????????????? PUT ? ? ? ? ? ? DELETE
HEADER????? OPTIONS????????? TRACE??????? CONNECT
(1)get和post的區(qū)別:
???????????? get:???
????????????????????? 請求速度快????
?????????????? ? ? ?? 提交字符串參數(shù)
???????????????????? 提交的數(shù)據(jù)會顯示在URL地址中
??????????????????? 提交的數(shù)據(jù)長度有限制????????? [不是瀏覽器|服務器限制]
????????? post:
????????????????????? 請求速度較快
????????????????????? 可以提交任意類型的參數(shù)
???????????????????? 提交的數(shù)據(jù)包含在請求體中
??????????????????? 提交的數(shù)據(jù)長度不受限制?????????? {服務器主動限制}
?(2)GET方式傳遞參數(shù)的三種操作:
?????????? 超鏈接傳遞:參數(shù)包含在URL地址的?后面,通過k=v的形式傳遞
????????? 超鏈接傳遞:參數(shù)包含在URL中間
????????? 表單傳遞:method=’get’
?(3)post方式傳遞參數(shù):
????????? 表單方式傳遞數(shù)據(jù):method=’post’
???????? POST提交數(shù)據(jù)一般會涉及到數(shù)據(jù)的更新,屬于敏感操作
??????? 一般會被黑客利用對網(wǎng)站進行攻擊!
???????? Django內置了一個防范令牌,要求添加到POST表單中即可!
????????? 在POST表單中,添加{% csrf_token %}令牌
五,瀏覽器訪問常見錯誤:
?????????? 3開頭~重復訪問,資源移除
????????? 4開頭~請求錯誤
???????? 404:資源沒有找到
???????? 403:禁止訪問,沒有權限
????? ? 402:禁止訪問,沒有交錢
???? ?? 400:請求損壞
?????? 5開頭~服務器錯誤
?? ?? 開發(fā)的項目出錯!
????? 500:項目中代碼出錯