顯然,這個功能不難實現,有了前面註冊登入的基礎,這個功能其實查不了多少,都是將輸入框的資料以post
的方式傳遞給後台,再在後台通過filter方法去物件列表,然後在詳情頁進行顯示
至於在輸入框placeholder顯示find_nothing
,這個因為需要用到重定向,而重定向沒有辦法像render那樣用字典的方法傳值,網上的方法有兩種:
把要傳給前端的資料存在快取中
把要傳給前端的資料以get的方法放在url上
用快取的方法很方便,而且url乾淨,不帶其他的東西,但是他畢竟是個快取資料,就像登入資訊一樣,他會保留一段時間,當你暫時不需要搜尋東西,並跑到其他頁面的時候,那個find_nothing還是會顯示在輸入框上面,這顯然並不是我們想要的,我們需要的是查詢不到的時候才跳出那個字,並對其他頁面沒有影響
所以,我果斷選了get方法傳值
def
sousuo
(request)
:try
: sou = request.post.get(
'sousuo'
)if request.method ==
'post'
: article = article.objects.
filter
(title=sou)
if article.exists():
detail_info = article[0]
else
:return redirect(
'/?error=find_nothing'
) denglu = request.session.get(
'name'
,'遊客'
)return render(request,
'blogmuban/xiangqing.html',)
except exception as e:
print
(e)
如**:我用filter方法取出標題含有搜尋框內容的資料,這裡無論有沒有這個資料,filter方法都會存入article,然後再來判斷這個指是否存在,由於article是乙個物件列表,所以有detail_info = article[0]
如果article不存在,我們就重定向到首頁,然後開始我上面說的get方法傳值:
return redirect(
'/?error=find_nothing'
)
這樣如果我們我們在輸入框輸入乙個錯誤值,我們的路由就很顯示這個:
那麼如何在前端拿到find_nothing這個字呢?
placeholder="}"
把placeholder裡面的東西寫成這個就行 如何使用Django搭建個人部落格
django是乙個開放源 的web應用框架,由python寫成。採用了mvc的軟體設計模式,即模型m,檢視v和控制器c。它最初是被開發來用於管理勞倫斯出版集團旗下的一些以新聞內容為主的 的,即是cms 內容管理系統 軟體。並於2005年7月在bsd許可證下發布。這套框架是以比利時的吉普賽爵士吉他手d...
用Django搭建個人部落格 1
業精於勤荒於嬉,形成於思毀於隨.本階段的任務小記 簡單介紹一下django的settings.py檔案的相關配置 整合資料庫到自己的部落格系統中 用django實現乙個hello world頁面 框架有框架的好處,使用框架的優勢在於你可以通過很少的工作完成大量的事情.作為乙個成熟的web框架,dja...
個人部落格搭建
花了3天時間,勉強把部落格基本填充完畢。我的部落格 博主一直都有寫部落格的習慣,之前嘗試了從0開始搭建,但效果並不好,而且在csdn下寫部落格 經常會出現bug,或者發布不了等限制。後經好友纖魂asucreyau推薦,了解到hexo這個框架,於是乎有了本站的誕生。在查閱hexo框架和next官方文件...