Django第三篇
前端反向解析
應用場景:通過訪問a路由,到達a的對應視圖函數,函數到達對應的前端a標簽
a標簽的路徑是b路由,如果我們在后端改變b路由的路徑,那么a標簽便無法訪問
到b路由,只能手動在前端改變a標簽的路徑,我們可以給后端的b路由添加一個
name='user'屬性值,通過user來綁定路徑,我們在前端{% url 'user' %}這樣
書寫,可以通過user來動態解析后端路徑 后端反向解析:
我們需要導一個reverse模塊,res=reverse('user') ,user是后端路由的name的值
打印res就是路由的路徑,只要通過name的值就可以找到前面的路徑。 分組前端反向解析:
前端a標簽的路徑滿足正則表達式就行,前端的代碼{% url name屬性值 滿足正則的值}
記住代碼的執行順序就行,你前端一點a標簽,a標簽的代碼剛好能滿足后端的匹配條件
那么肯定能解析出地址 無名分組后端反向解析
res=resvers('name屬性值', args(滿足正則值,))
print(res)
來動態解析地址,只要能匹配就能解析 有名分組的反向解析
前端:
{% url 1 %}推薦使用(無論有名無名都可以)
{% url year=1 %} 可以使用后端
res=sevser('add' args=(1,))有名無名都能用(推薦)
res=severs('add' kwargs={year:1}有名用 有名分組:
用括號將正則括起來,被括號括起來的值會被當成位子實參傳給
后面的視圖函數的形參,位置傳參的特點是一一對應,如果形參為
args,打印出來res則會被元組的形式 有名分組
(?P<year>[0-9]{4})會將year=正則匹配的值當成關鍵字實參傳給后面的函數為形參
關鍵字傳參特點,(year=2019 ,month=12)>>>對應形參必須為(year,month)
且形參調換位置,值不會改變 路由分發:
第一步,創建APP,在不同的app下創建自己的urls
第二步,在項目總路由導一個模塊include
第三步,在項目urls寫下url(r^app名/', include('app名.urls '))
第四步,去分發的app下的urls文件夾寫下url(r^函數名/’,view.函數名)
第五步,去對應的view,寫下對應的視圖函數
思路:請求先經過總路由匹配,匹配成功后再去對應的app文件下的
urls匹配,匹配成功再執行對應的視圖函數,注意不能在總路由加$ 返回前端json格式的數據:
方法一
res={'name':'egon'}
return(json.dumps(res))
方法二
return(JsonResponse(res)) 文件上傳
聯想一下之前的文件上傳,還要解決粘包,如今用Django怎么上傳?
第一步:得提交文件,用form表單,提交方式POST,enctype=multipart/form-data
第二步:獲取文件對象,request.FILES.get(html中的文件名)
第三步:file_obj.name,獲取文件名
第三步;打開文件寫,至于下載到哪?自己可以配置路徑
for line in file_obj:
f.write(line)
?
?
?
??
轉載于:https://www.cnblogs.com/jingandyuer/p/10991829.html
總結
- 上一篇: 女人做梦梦到洗澡是什么意思
- 下一篇: 周公解梦梦到别人给我钱是什么意思