Django MVT處理模式的框架
視圖函數(shù)views.py
數(shù)據(jù)模型models.py
網(wǎng)頁視圖html網(wǎng)頁
Django項(xiàng)目結(jié)構(gòu):根項(xiàng)目管理所有子項(xiàng)目
根項(xiàng)目:網(wǎng)頁
子項(xiàng)目:網(wǎng)頁
1. 一個簡單的網(wǎng)頁加載[了解]
? django.http.HttpResponse返回字符串[了解]
? django.template.loader加載器加載網(wǎng)頁[了解]
? django.shortcuts.render渲染器渲染加載網(wǎng)頁[掌握]
備注:所有子模塊應(yīng)用中,Django會自動掃描是否存在templates/文件夾亮靴,在這個文件夾下查詢指定的要加載的網(wǎng)頁[templates/文件夾名稱推薦使用馍盟!不要隨意更改這個存放網(wǎng)頁的文件夾的名稱]
2. 靜態(tài)資源的處理
Django的加載器會自動掃描所有子模塊應(yīng)用中的/static/文件夾,在static文件夾中查詢對應(yīng)的靜態(tài)資源文件[settings.py中配置了STATIC_URL=/static/茧吊;同樣的贞岭,推薦使用默認(rèn)的靜態(tài)文件夾名稱static,不要任意修改這個文件夾的名字搓侄!]
3. 根項(xiàng)目的網(wǎng)頁處理和靜態(tài)文件處理
根項(xiàng)目下瞄桨,設(shè)置網(wǎng)頁~網(wǎng)頁的查詢加載路徑
? settings.py配置TEMPLATES選項(xiàng)中的DIRS選項(xiàng),將根項(xiàng)目的訪問路徑配置進(jìn)入
DIRS:[“temp”]
? 網(wǎng)頁的查詢順序讶踪,首先[temp/]芯侥,其次查詢子項(xiàng)目[templates/],如果此時兩個文件夾中存在同名稱的同路徑的文件,就會直接訪問[temp/]的文件
所以我們要在子模塊應(yīng)用中的[templates/]文件夾中柱查,再創(chuàng)建一個[myblog/]用來進(jìn)行文件路徑隔離廓俭!
? 靜態(tài)資源處理[子模塊應(yīng)用中,直接查詢/static/]
簡短總結(jié)
子模塊應(yīng)用
- 網(wǎng)頁文件:在子模塊應(yīng)用當(dāng)前路徑中唉工,創(chuàng)建templates/文件夾研乒,在文件夾中創(chuàng)建和子模塊應(yīng)用同名的文件夾,在該文件夾中創(chuàng)建所有的html網(wǎng)頁
如:mysite/myblog/templates/myblog/index.html- 靜態(tài)文件:在子模塊應(yīng)用的當(dāng)前路徑中淋硝,創(chuàng)建static/文件夾告嘲,在文件夾中創(chuàng)建和子模塊應(yīng)用同名的文件夾,在該文件夾中創(chuàng)建js/奖地、images/、css/等等各種靜態(tài)文件夾存放不同的靜態(tài)文件赋焕,在網(wǎng)頁中通過/static/myblog/css/index.css方式進(jìn)行引入使用
- 注意:上述操作参歹,不需要配置
根模塊
- 網(wǎng)頁文件:在根目錄中創(chuàng)建一個存放網(wǎng)頁的文件夾,如temp/隆判,然后在配置文件中添加新的配置[settings.py中TEMPLATES配置的DIRS選項(xiàng)中犬庇,添加temp],在這個temp/文件夾中,就可以存放html網(wǎng)頁文件[一般這個文件夾中存放的是根項(xiàng)目的網(wǎng)頁或者所有子項(xiàng)目的公共網(wǎng)頁]
- 靜態(tài)文件:在根目錄中創(chuàng)建一個存放靜態(tài)文件的文件夾侨嘀,如static/臭挽,然后在配置文件中添加新的配置[STATICFILES_DIRS=[..] ]添加好新的配置,就可以在static/文件夾中咬腕,直接使用靜態(tài)文件了欢峰。
# 根項(xiàng)目中 配置存放網(wǎng)頁的文件夾
TEMPLATES = {
..
DIRS: [“temp”]
..
}
# 根項(xiàng)目中配置存放靜態(tài)文件的文件夾
STATICFILES_DIRS = [
os.path.join(BASE_DIR, “static”)
]
|-- mysite/
|-- mysite/
|-- settings.py
|-- urls.py
|-- views.py
|-- myblog/
|-- templates/
|-- myblog/
|-- index.html
|-- static/
|-- myblog/
|-- css/
|-- js/
|-- images/
|-- urls.py
|-- models.py
|-- views.py
|-- manage.py
|-- temp/
|-- static/
|-- css/
|-- js/
|-- images/
settings.py
..
TEMPLATES = {
..
DIRS: [“temp”]
..
}
..
STATICFILES_DIRS = [
os.path.join(BASE_DIR, “static”)
]
web項(xiàng)目,前端:HTML技術(shù)——數(shù)據(jù)傳輸:HTTP協(xié)議
HTTP1.1標(biāo)準(zhǔn):規(guī)定了8種請求方式
GET
POST
PUT
DELETE
OPTION
CONNECTION
HEADER
TRACE
所謂請求方式涨共,就是指代的數(shù)據(jù)交互方式纽帖,所以常用的有四種請求方式
GET:查詢
POST:更新
PUT:增加
DELETE:刪除
但是:在項(xiàng)目實(shí)際操作過程中,客戶端和服務(wù)器進(jìn)行數(shù)據(jù)交互的過程举反,所以在交互時根據(jù)實(shí)際數(shù)據(jù)處理方式懊直,常用操作的有兩種,主要用于進(jìn)行數(shù)據(jù)交互
GET
POST
GET請求方式 VS POST請求方式
HTTP1.1標(biāo)準(zhǔn)中制定了不同的請求方式火鼻,用于不同的處理目的室囊;但是在實(shí)際項(xiàng)目開發(fā)中通常都是客戶端和服務(wù)端之間的數(shù)據(jù)交互,所以直接使用get魁索、post兩種方式就可以進(jìn)行快捷的功能完成融撞;唯一需要注意的就是get方式在進(jìn)行參數(shù)傳遞時需要注意不要傳遞敏感數(shù)據(jù),其他的區(qū)別如下:
get請求方式蛾默,直接發(fā)起請求懦铺,請求的數(shù)據(jù)會呈現(xiàn)在url地址中
傳輸文本數(shù)據(jù)
長度收到限制[get沒有長度限制、對于get請求的url地址長度限制]
安全性較差
效率比較快
post請求方式支鸡,直接發(fā)起請求冬念,請求的數(shù)據(jù)會包裝在請求對象[請求體]中
傳輸任何數(shù)據(jù)
長度不受限制[理論]
安全性較好
效率較慢
如果傳遞二進(jìn)制數(shù)據(jù):必須使用post
如果傳遞的參數(shù)數(shù)據(jù)中有不能讓別人看到的數(shù)據(jù):必須使用post
如果只是傳遞簡單參數(shù)用于進(jìn)行數(shù)據(jù)處理趁窃,使用get效率更好
數(shù)據(jù)傳遞方式
GET方式傳遞數(shù)據(jù):
? 明確什么樣的請求是get方式
? form表單中method=”get”,這個表單就是get請求
? 超鏈接急前,就是get請求
? 瀏覽器直接訪問url地址醒陆,get請求
? get數(shù)據(jù)的接受
? request.GET方式直接接受,接受到一個字典{k:v}
? 獲取某個值:request.GET[‘name屬性名稱’]
? post數(shù)據(jù)的接受
? request.POST方式直接接受裆针,接受到一個字典
? 獲取某個值:request.POST[‘name屬性名稱’]
? 注意:在表單中增加一個令牌{% csrf_token %}