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