謝建華 梁杰華 鄭劍
摘要:基于Django和爬蟲的綜合型博客系統(tǒng)開發(fā)設(shè)計(jì)中,使用Pycharm,主要使用的是python語言,同時(shí),頁面文件的編寫和一些交互的實(shí)現(xiàn)也涉及Html,JavaScript。技術(shù)方面,使用的python中的穩(wěn)定框架Django進(jìn)行開發(fā),在選用數(shù)據(jù)庫時(shí),選用關(guān)系型數(shù)據(jù)庫mysql。該次設(shè)計(jì)主要是實(shí)現(xiàn)一個(gè)綜合性能的博客系統(tǒng),系統(tǒng)角色有游客,用戶,管理員,超級管理員,游客可以實(shí)現(xiàn)內(nèi)容查看,用戶和管理員可以對博客文章的增刪改查,對評論以及多重回復(fù)評論的實(shí)現(xiàn),對文章進(jìn)行標(biāo)簽設(shè)計(jì)登,超級管理員可以對用戶進(jìn)行權(quán)限控制等。 “四方博客”,顧名思義,“四方”即意味著這是一個(gè)綜合型博客平臺(tái),廣納各方博主見聞并分享于此平臺(tái),達(dá)到信息共享,交流學(xué)習(xí)。
關(guān)鍵詞:Python;Django;博客;系統(tǒng);爬蟲
中圖分類號:TP393? ? ? 文獻(xiàn)標(biāo)識(shí)碼:A
文章編號:1009-3044(2019)23-0051-04
開放科學(xué)(資源服務(wù))標(biāo)識(shí)碼(OSID):
Implementation of Quadripartite Blog Based on Django
XIE Jian-hua, LIANG Jie-hua, ZHENG Jian
(Jiangxi University of Science and Technology, Ganzhou 341000, China)
Abstract: In the development and design of integrated blog system based on Django and crawler, Pycharm is mainly used in Python language. At the same time, the compilation of page files and some interactive implementations also involve Html and JavaScript. Technically, the stable framework Django in Python is used for development. When selecting database, the relational database mysql is used. This design is mainly to achieve a comprehensive performance of the blog system, the system role of tourists, users, administrators, super administrators, tourists can achieve content viewing, users and administrators can add, delete and modify blog articles, comments and multiple replies to the implementation of comments, tag design for articles, super The level administrator can control the user's rights and so on. "Quartet Blog", as its name implies, "Quartet" means that it is a comprehensive blog platform, which includes all bloggers'opinions and stories, so as to achieve information sharing and exchange of learning.
Key words: Python; Django; blogs; systems; Crawlers
本次設(shè)計(jì)定位為綜合型博客平臺(tái),針對本系統(tǒng)不同的角色,提供不一樣的功能接口。設(shè)計(jì)的角色有游客,普通用戶,普通管理員,超級管理員四個(gè),通過良好的接口方法設(shè)計(jì),達(dá)到使處在游客角色的人只能夠?qū)Ρ鞠到y(tǒng)提供的文章信息以及博主信息進(jìn)行觀看,處在普通用戶或管理員的人能夠查看并發(fā)布并管理自己的文章,超級用戶可以對整個(gè)系統(tǒng)進(jìn)行控制。設(shè)計(jì)的模塊有前臺(tái)顯示模塊,前臺(tái)管理模塊,系統(tǒng)后臺(tái)管理模塊,在這設(shè)計(jì)過程中,使用Django框架自帶的一些組件和自定義的如中間件,自定義上下文,自定義系統(tǒng)模型,自定義驗(yàn)證器等等,來完成各大功能模塊的編寫。
前臺(tái)首頁渲染使用數(shù)據(jù)庫技術(shù)以及爬蟲技術(shù),完成本系統(tǒng)爬取CSDN熱門博客內(nèi)容進(jìn)行展示以及使用爬蟲可視化技術(shù)展示當(dāng)?shù)匚磥韼滋焯鞖馇闆r。系統(tǒng)首頁人人可見,前臺(tái)用戶注冊在用戶注冊時(shí)提供短信碼驗(yàn)證技術(shù),在其他信息沒有錯(cuò)誤的情況下,當(dāng)手機(jī)號與接收的驗(yàn)證碼都沒問題才能注冊成功。注冊成功的用戶在登錄后可以進(jìn)入到自己的文章管理后臺(tái),可以管理文章,標(biāo)簽,評論,分類,相較于游客這一角色,注冊后的用戶具有評論,點(diǎn)贊的權(quán)力,以及管理文章的權(quán)力,換言之,用戶擔(dān)任著兩重角色,即普通用戶和普通管理員的角色。超級管理員即可以對整個(gè)系統(tǒng)的已發(fā)布的信息進(jìn)行存儲(chǔ),以及修改某個(gè)用戶的權(quán)限,同時(shí),超級管理員也可以以普通管理員的身份進(jìn)行發(fā)布并管理文章,換言之,超級管理員擔(dān)任著三重角色。本項(xiàng)目旨在通過綜合型博客平臺(tái)達(dá)到信息共享以及學(xué)術(shù)交流的目的。
1 系統(tǒng)功能結(jié)構(gòu)的設(shè)計(jì)
1.1 系統(tǒng)管理端功能
如圖1所示整個(gè)系統(tǒng)后臺(tái)具有如下功能:
1)超級管理員管理整個(gè)系統(tǒng)的已注冊用戶,可對用戶進(jìn)行批量操作,設(shè)置用戶權(quán)限,分組等;
2)超級管理員管理整個(gè)系統(tǒng)的評論信息,可批量操作評論,使非法評論得到控制;
3)系統(tǒng)可以讓超級管理員管理整個(gè)系統(tǒng)已發(fā)布文章。
1.2 Web用戶端的主要功能介紹
Web用戶端分為前臺(tái)模塊和前臺(tái)管理模塊,如圖2和圖3所示,主要具有以下功能:
1)前臺(tái)模塊下分為前臺(tái)信息展示模塊和注冊登錄模塊;信息展示模塊主要提供給用戶瀏覽全站博客或個(gè)人博客園等信息的接口,系統(tǒng)首頁使用爬蟲渲染數(shù)據(jù),注冊登錄模塊即為管理模塊奠定基礎(chǔ),注冊采用手機(jī)短信驗(yàn)證,登錄提供驗(yàn)證碼驗(yàn)證;
2)前臺(tái)管理模塊提供用戶管理自己發(fā)布的所有信息,提供用戶作為管理員的角色接口。
2 系統(tǒng)實(shí)現(xiàn)的關(guān)鍵技術(shù)
2.1 使用短信驗(yàn)證注冊,提高系統(tǒng)信息真實(shí)性
作為一個(gè)綜合型博客系統(tǒng),需要對注冊的用戶信息進(jìn)行真實(shí)性考量,防止在平臺(tái)隨意發(fā)布一些違規(guī)信息,雖然對違規(guī)信息可由管理員進(jìn)行控制賬號權(quán)限,但仍需要從源頭上將系統(tǒng)用戶進(jìn)行最基本的過濾,只有注冊時(shí)能夠通過全部驗(yàn)證的才能注冊成功,全部驗(yàn)證包括郵箱,手機(jī)號,短信驗(yàn)證碼等。根本上可以控制注冊的用戶為真實(shí)存在的信息的手段是使用短信驗(yàn)證技術(shù),從而提高系統(tǒng)信息真實(shí)性,為平臺(tái)發(fā)布合法內(nèi)容奠定最基礎(chǔ)的控制。短信驗(yàn)證時(shí)流程圖4如下:
2.2 用戶登錄后可以管理自己發(fā)布的所有
由于系統(tǒng)定位為綜合型博客平臺(tái),故在角色設(shè)計(jì)上,用戶可以作為自己的管理員,管理自己發(fā)布的所有,即對自己的文章,評論,分類,標(biāo)簽等進(jìn)行增刪改查的操作,達(dá)到用戶的雙重角色,既是用戶又是管理員,能夠?qū)ψ约旱陌l(fā)布進(jìn)行控制,達(dá)到減輕系統(tǒng)管理工作的目的。具體流程圖如圖5所示:
2.3 系統(tǒng)后臺(tái)可以管理整個(gè)系統(tǒng)
系統(tǒng)后臺(tái)提供超級管理員訪問的入口,為了使平臺(tái)發(fā)布的內(nèi)容以及對注冊的用戶進(jìn)行行為控制等,必須使平臺(tái)擁有自己定義的管理員,對系統(tǒng)中各個(gè)用戶進(jìn)行控制,對系統(tǒng)中全部文章進(jìn)行控制,對系統(tǒng)中全部評論進(jìn)行控制等等。設(shè)計(jì)系統(tǒng)后臺(tái)可以管理整個(gè)系統(tǒng)就是實(shí)現(xiàn)這一目的的手段。具體如圖6所示:
3 系統(tǒng)界面設(shè)計(jì)
四方博客平臺(tái)是一款綜合型博客平臺(tái),并使用了爬蟲技術(shù)實(shí)現(xiàn)首頁博客熱門文章的抓取并顯示,主要提供發(fā)布及展示以及管理等功能,系統(tǒng)大致劃分為四個(gè)模塊,即用戶注冊登錄,信息展示,用戶管理自己發(fā)布,系統(tǒng)管理用戶。
1)用戶注冊登錄模塊:注冊提供用戶參與到系統(tǒng)信息構(gòu)建的入口,提升用戶權(quán)限,使用戶能夠具有比游客這一角色更豐富的權(quán)限;登錄提供用戶發(fā)布信息以及管理信息的入口,只有在登錄狀態(tài)下,才能夠進(jìn)行數(shù)據(jù)管理。
2)信息展示模塊:此模塊為用戶提供系統(tǒng)首頁博客文章的渲染,其中使用了分頁對數(shù)據(jù)進(jìn)行良好的呈現(xiàn),此外,還提供有個(gè)人博客園信息的展示,文章詳情信息的查看等的接口。
3)用戶管理自己發(fā)布模塊:用戶個(gè)人模塊中各一部分,提供用戶對不同信息的操控,管理的對象是自己所發(fā)布的所有內(nèi)容即文章,評論,標(biāo)簽,分類等。
4)系統(tǒng)管理用戶模塊:提供對平臺(tái)控制的接口,能夠使平臺(tái)的信息安全穩(wěn)定的呈現(xiàn)給訪問站點(diǎn)的用戶。
4 小結(jié)
本系統(tǒng)開發(fā)使用python中的Web框架即Django進(jìn)行開發(fā),能夠通過簡短的代碼編寫,實(shí)現(xiàn)系統(tǒng)構(gòu)建,經(jīng)過測試,系統(tǒng)各個(gè)功能模塊都能正常運(yùn)行,能夠提供注冊到平臺(tái)的用戶發(fā)布文章的權(quán)限,其中,發(fā)布文章頁面使用插件,使鏈接,圖片等都不會(huì)失效或錯(cuò)位。使用Django開發(fā)綜合型博客平臺(tái),設(shè)計(jì)系統(tǒng)角色,著手系統(tǒng)部署等,從實(shí)踐中掌握技術(shù)的使用,理解接口如何編寫等,便是開發(fā)此系統(tǒng)的意義所在,同時(shí),此系統(tǒng)可供學(xué)術(shù)交流的目的。
參考文獻(xiàn):
[1] 王啟明, 羅從良. Python3.6零基礎(chǔ)入門與實(shí)戰(zhàn)[M]. 北京: 清華大學(xué)出版社,2018.
[2] 劉長龍. Python高效開發(fā)實(shí)戰(zhàn)[M]. 北京: 電子工業(yè)出版社,2016.
[3] 王珊, 薩師煊. 數(shù)據(jù)庫系統(tǒng)概論[M]. 5版. 北京: 高等教育出版社, 2014(9): 130-185.
[4] Anany Levitin.算法設(shè)計(jì)與分析基礎(chǔ)[M]. 3版. 潘彥, 譯. 北京: 清華大學(xué)出版社, 2015.
[5] 王友釗, 黃靜. Django開發(fā)寶典[M]. 北京: 清華大學(xué)出版社,2017.
【通聯(lián)編輯:謝媛媛】