亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站

資訊專(zhuān)欄INFORMATION COLUMN

Django搭建個(gè)人博客:編寫(xiě)刪除文章功能

Chaz / 1740人閱讀

摘要:既然有了寫(xiě)文章的功能,那當(dāng)然也必須要有刪除文章的功能了。編寫(xiě)基本功能有了之前的學(xué)習(xí)做鋪墊,刪除文章實(shí)現(xiàn)起來(lái)就比較簡(jiǎn)單了。保存所有文件后刷新頁(yè)面,很好,達(dá)到了理想的效果總結(jié)本章新增了刪除博客文章的功能,并且使用了彈窗組件優(yōu)化了用戶(hù)體驗(yàn)。

既然有了寫(xiě)文章的功能,那當(dāng)然也必須要有刪除文章的功能了。

編寫(xiě)基本功能

有了之前的學(xué)習(xí)做鋪墊,刪除文章實(shí)現(xiàn)起來(lái)就比較簡(jiǎn)單了。

首先增加一個(gè)視圖函數(shù):

article/views.py

...

# 刪文章
def article_delete(request, id):
    # 根據(jù) id 獲取需要?jiǎng)h除的文章
    article = ArticlePost.objects.get(id=id)
    # 調(diào)用.delete()方法刪除文章
    article.delete()
    # 完成刪除后返回文章列表
    return redirect("article:article_list")

與查詢(xún)文章類(lèi)似,因?yàn)樾枰谰唧w應(yīng)該刪除哪一篇文章,因此必須傳入文章的id;

緊接著調(diào)用.delete()函數(shù)刪除數(shù)據(jù)庫(kù)中這篇文章的條目;

刪除成功后返回到文章列表。

這里與上一章一樣,不對(duì)用戶(hù)的身份進(jìn)行限制,即任何人都可以刪除任意文章。當(dāng)然這樣肯定是不符合常理的,等到我們學(xué)習(xí)了用戶(hù)管理的知識(shí)后,再回頭來(lái)修改。

然后寫(xiě)入路由信息:

article/urls.py

...

urlpatterns = [
    ...
    # 刪除文章
    path("article-delete//", views.article_delete, name="article_delete"),
]

這里幾乎與文章詳情的寫(xiě)法一樣,沒(méi)有新的內(nèi)容。再次注意文章的id是如何傳遞到視圖中的。

最后我們希望能夠在文章詳情的頁(yè)面進(jìn)行刪除的操作(當(dāng)然也可以在專(zhuān)門(mén)的管理文章的頁(yè)面中),因此修改模板detail.html

templates/article/detail.html

...


...
作者:{{ article.author }} · 刪除文章
...
...

這里增加了一個(gè)調(diào)用article_delete視圖函數(shù)的鏈接,并且將article.id傳遞進(jìn)去。

運(yùn)行開(kāi)發(fā)服務(wù)器,可以發(fā)現(xiàn)已經(jīng)能夠正常的刪除文章了:

增加彈窗

功能已經(jīng)實(shí)現(xiàn)了,但是還有個(gè)小問(wèn)題沒(méi)有解決:萬(wàn)一我只是不小心點(diǎn)到了鏈接,辛辛苦苦寫(xiě)的文章就被刪除了,豈不是欲哭無(wú)淚了?

很容易想到的一個(gè)解決方法,就是點(diǎn)擊刪除按鈕是出現(xiàn)一個(gè)彈窗,確認(rèn)后再進(jìn)行刪除,確保用戶(hù)不是誤操作的。

彈窗是很常用的功能,但是想寫(xiě)出一個(gè)美觀好用的彈窗卻不容易。幸運(yùn)的是我們不需要重復(fù)造輪子,早就有革命先驅(qū)做好相關(guān)的功能了,這里我們選擇使用Layer彈窗組件

layer是一款備受青睞的web彈層組件,具備全方位的解決方案。首先到官網(wǎng)下載Layer插件:Layer

解壓后將里面的layer文件夾(含有l(wèi)ayer.js的)直接復(fù)制到項(xiàng)目的static文件夾下。

為了未來(lái)在所有頁(yè)面都能使用Layer彈窗功能,在base.html中通過(guò)標(biāo)簽引入:

templates/base.html

...


    ...

    
    
    ...
    
    


...

layer插件依賴(lài)jquery才能正常工作,因此要在jquery的后面引入layer。

再次改寫(xiě)模板文件detail.html

templates/article/detail.html

...


...
作者:{{ article.author }} · 刪除文章
...
{% endblock content %}

這里將href鏈接去除掉,增加了onclick屬性,表示在點(diǎn)擊鏈接的時(shí)候調(diào)用后面的confirm_delete()函數(shù);函數(shù)中調(diào)用了layer彈窗組件,對(duì)彈窗的標(biāo)題、正文以及點(diǎn)擊確定鍵的行為作出了規(guī)定(當(dāng)然Layer組件遠(yuǎn)不止這些用法,具體可在官方文檔中查閱)。location.href定義了點(diǎn)擊確定鍵后應(yīng)該前往的地址,即刪除文章的url。

保存所有文件后刷新頁(yè)面,很好,達(dá)到了理想的效果:

總結(jié)

本章新增了刪除博客文章的功能,并且使用了彈窗組件優(yōu)化了用戶(hù)體驗(yàn)。

下一章將學(xué)習(xí)如何更新文章,準(zhǔn)備好繼續(xù)作戰(zhàn)吧。

有疑問(wèn)請(qǐng)?jiān)诙刨惖膫€(gè)人網(wǎng)站留言,我會(huì)盡快回復(fù)。

或Email私信我:dusaiphoto@foxmail.com

項(xiàng)目完整代碼:Django_blog_tutorial

轉(zhuǎn)載請(qǐng)告知作者并注明出處。

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://www.ezyhdfw.cn/yun/42594.html

相關(guān)文章

  • Django搭建個(gè)人博客編寫(xiě)博客文章的Model模型

    摘要:在里寫(xiě)一個(gè)數(shù)據(jù)庫(kù)驅(qū)動(dòng)的應(yīng)用的第一步是定義模型,也就是數(shù)據(jù)庫(kù)結(jié)構(gòu)設(shè)計(jì)和附加的其它元數(shù)據(jù)。模型元數(shù)據(jù)是任何不是字段的東西,例如排序選項(xiàng)數(shù)據(jù)庫(kù)表名單數(shù)和復(fù)數(shù)名稱(chēng)和。 Django 框架主要關(guān)注的是模型(Model)、模板(Template)和視圖(Views),稱(chēng)為MTV模式。 它們各自的職責(zé)如下: 層次 職責(zé) 模型(Model),即數(shù)據(jù)存取層 處理與數(shù)據(jù)相關(guān)的所有事務(wù): 如何存取...

    winterdawn 評(píng)論0 收藏0
  • Django搭建個(gè)人博客:在博文中發(fā)表評(píng)論

    摘要:確認(rèn)創(chuàng)建成功后,記得在中注冊(cè)因?yàn)槲覀兿腼@示發(fā)表評(píng)論的時(shí)間,修改時(shí)區(qū)設(shè)置為上海的時(shí)區(qū)。處理錯(cuò)誤請(qǐng)求發(fā)表評(píng)論僅接受請(qǐng)求。返回到一個(gè)適當(dāng)?shù)闹屑从脩?hù)發(fā)送評(píng)論后,重新定向到文章詳情頁(yè)面。總結(jié)本章實(shí)現(xiàn)了發(fā)表評(píng)論展示評(píng)論的功能。 在沒(méi)有互聯(lián)網(wǎng)的年代,我們用日記來(lái)記錄每天的心得體會(huì)。小的時(shí)候我有一個(gè)帶鎖的日記本,生怕被別人看見(jiàn)里面寫(xiě)了啥,鑰匙藏得那叫一個(gè)絕。 現(xiàn)在時(shí)代變了,網(wǎng)絡(luò)版的日記本:博客,卻巴不...

    Jinkey 評(píng)論0 收藏0
  • Django搭建個(gè)人博客:完成修改文章功能

    摘要:目前為止我們已經(jīng)完成了文章的新建刪除以及查看,還剩最后一項(xiàng),即對(duì)已經(jīng)完成的文章進(jìn)行修改??偨Y(jié)至此我們就實(shí)現(xiàn)了一篇文章的增刪改查四個(gè)基礎(chǔ)功能,也算小有成就。有疑問(wèn)請(qǐng)?jiān)诙刨惖膫€(gè)人網(wǎng)站留言,我會(huì)盡快回復(fù)。 目前為止我們已經(jīng)完成了文章的新建、刪除以及查看,還剩最后一項(xiàng),即對(duì)已經(jīng)完成的文章進(jìn)行修改。 實(shí)際上修改文章與新建文章有點(diǎn)類(lèi)似,不同的地方有兩點(diǎn): 修改是在原有文章的基礎(chǔ)上,因此需要傳遞 ...

    terasum 評(píng)論0 收藏0
  • Django搭建個(gè)人博客:使用Form表單類(lèi)發(fā)表新文章

    摘要:一些表單界面元素文本框或復(fù)選框非常簡(jiǎn)單并內(nèi)置在中,而其他會(huì)復(fù)雜些像彈出日期選擇等操作控件。和標(biāo)簽中的屬性指定了當(dāng)前文本框提交的數(shù)據(jù)的名稱(chēng),它必須與表單類(lèi)中的字段名稱(chēng)對(duì)應(yīng),否則服務(wù)器無(wú)法將字段和數(shù)據(jù)正確的對(duì)應(yīng)起來(lái)。 前面我們已經(jīng)學(xué)會(huì)如何用Markdown語(yǔ)法書(shū)寫(xiě)文章了。 但是還有問(wèn)題呀。之前寫(xiě)文章都是在后臺(tái)中進(jìn)行的,萬(wàn)一有別的普通用戶(hù)也要發(fā)表文章怎么辦?萬(wàn)一我想拓展些后臺(tái)中沒(méi)有的提交驗(yàn)證...

    Java3y 評(píng)論0 收藏0
  • Django搭建個(gè)人博客:用戶(hù)的登錄和登出

    摘要:最常見(jiàn)的用法就是存儲(chǔ)用戶(hù)的登錄數(shù)據(jù)。如果用戶(hù)未登錄,則顯示登錄兩個(gè)字提醒用戶(hù)可以點(diǎn)擊登錄。創(chuàng)建文件用戶(hù)登錄配置根路由用戶(hù)管理配置因?yàn)檫@個(gè)并沒(méi)有改動(dòng),因此不用遷移數(shù)據(jù)??偨Y(jié)本章用到了表單類(lèi)模板語(yǔ)句用戶(hù)驗(yàn)證等知識(shí)完成了用戶(hù)管理的登錄和退出。 用戶(hù)管理 用戶(hù)數(shù)據(jù)可以說(shuō)是大部分網(wǎng)站最重要的資產(chǎn)。用戶(hù)管理就是對(duì)用戶(hù)數(shù)據(jù)進(jìn)行增刪改查等操作的功能,自然也就非常的重要了。 本章開(kāi)始學(xué)習(xí)用戶(hù)管理的內(nèi)容,...

    whidy 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<