謝建華 梁杰華 鄭劍



摘要:基于Django和爬蟲的綜合型博客系統(tǒng)開發(fā)設(shè)計中,使用Pycharm,主要使用的是python語言,同時,頁面文件的編寫和一些交互的實現(xiàn)也涉及Html,JavaScript。技術(shù)方面,使用的python中的穩(wěn)定框架Django進行開發(fā),在選用數(shù)據(jù)庫時,選用關(guān)系型數(shù)據(jù)庫mysql。該次設(shè)計主要是實現(xiàn)一個綜合性能的博客系統(tǒng),系統(tǒng)角色有游客,用戶,管理員,超級管理員,游客可以實現(xiàn)內(nèi)容查看,用戶和管理員可以對博客文章的增刪改查,對評論以及多重回復(fù)評論的實現(xiàn),對文章進行標簽設(shè)計登,超級管理員可以對用戶進行權(quán)限控制等。 “四方博客”,顧名思義,“四方”即意味著這是一個綜合型博客平臺,廣納各方博主見聞并分享于此平臺,達到信息共享,交流學(xué)習(xí)。
關(guān)鍵詞:Python;Django;博客;系統(tǒng);爬蟲
中圖分類號:TP393? ? ? 文獻標識碼:A
文章編號:1009-3044(2019)23-0051-04
開放科學(xué)(資源服務(wù))標識碼(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è)計定位為綜合型博客平臺,針對本系統(tǒng)不同的角色,提供不一樣的功能接口。設(shè)計的角色有游客,普通用戶,普通管理員,超級管理員四個,通過良好的接口方法設(shè)計,達到使處在游客角色的人只能夠?qū)Ρ鞠到y(tǒng)提供的文章信息以及博主信息進行觀看,處在普通用戶或管理員的人能夠查看并發(fā)布并管理自己的文章,超級用戶可以對整個系統(tǒng)進行控制。設(shè)計的模塊有前臺顯示模塊,前臺管理模塊,系統(tǒng)后臺管理模塊,在這設(shè)計過程中,使用Django框架自帶的一些組件和自定義的如中間件,自定義上下文,自定義系統(tǒng)模型,自定義驗證器等等,來完成各大功能模塊的編寫。
前臺首頁渲染使用數(shù)據(jù)庫技術(shù)以及爬蟲技術(shù),完成本系統(tǒng)爬取CSDN熱門博客內(nèi)容進行展示以及使用爬蟲可視化技術(shù)展示當(dāng)?shù)匚磥韼滋焯鞖馇闆r。系統(tǒng)首頁人人可見,前臺用戶注冊在用戶注冊時提供短信碼驗證技術(shù),在其他信息沒有錯誤的情況下,當(dāng)手機號與接收的驗證碼都沒問題才能注冊成功。注冊成功的用戶在登錄后可以進入到自己的文章管理后臺,可以管理文章,標簽,評論,分類,相較于游客這一角色,注冊后的用戶具有評論,點贊的權(quán)力,以及管理文章的權(quán)力,換言之,用戶擔(dān)任著兩重角色,即普通用戶和普通管理員的角色。超級管理員即可以對整個系統(tǒng)的已發(fā)布的信息進行存儲,以及修改某個用戶的權(quán)限,同時,超級管理員也可以以普通管理員的身份進行發(fā)布并管理文章,換言之,超級管理員擔(dān)任著三重角色。本項目旨在通過綜合型博客平臺達到信息共享以及學(xué)術(shù)交流的目的。
1 系統(tǒng)功能結(jié)構(gòu)的設(shè)計
1.1 系統(tǒng)管理端功能
如圖1所示整個系統(tǒng)后臺具有如下功能:
1)超級管理員管理整個系統(tǒng)的已注冊用戶,可對用戶進行批量操作,設(shè)置用戶權(quán)限,分組等;
2)超級管理員管理整個系統(tǒng)的評論信息,可批量操作評論,使非法評論得到控制;
3)系統(tǒng)可以讓超級管理員管理整個系統(tǒng)已發(fā)布文章。
1.2 Web用戶端的主要功能介紹
Web用戶端分為前臺模塊和前臺管理模塊,如圖2和圖3所示,主要具有以下功能:
1)前臺模塊下分為前臺信息展示模塊和注冊登錄模塊;信息展示模塊主要提供給用戶瀏覽全站博客或個人博客園等信息的接口,系統(tǒng)首頁使用爬蟲渲染數(shù)據(jù),注冊登錄模塊即為管理模塊奠定基礎(chǔ),注冊采用手機短信驗證,登錄提供驗證碼驗證;
2)前臺管理模塊提供用戶管理自己發(fā)布的所有信息,提供用戶作為管理員的角色接口。
2 系統(tǒng)實現(xiàn)的關(guān)鍵技術(shù)
2.1 使用短信驗證注冊,提高系統(tǒng)信息真實性
作為一個綜合型博客系統(tǒng),需要對注冊的用戶信息進行真實性考量,防止在平臺隨意發(fā)布一些違規(guī)信息,雖然對違規(guī)信息可由管理員進行控制賬號權(quán)限,但仍需要從源頭上將系統(tǒng)用戶進行最基本的過濾,只有注冊時能夠通過全部驗證的才能注冊成功,全部驗證包括郵箱,手機號,短信驗證碼等。根本上可以控制注冊的用戶為真實存在的信息的手段是使用短信驗證技術(shù),從而提高系統(tǒng)信息真實性,為平臺發(fā)布合法內(nèi)容奠定最基礎(chǔ)的控制。短信驗證時流程圖4如下:
2.2 用戶登錄后可以管理自己發(fā)布的所有
由于系統(tǒng)定位為綜合型博客平臺,故在角色設(shè)計上,用戶可以作為自己的管理員,管理自己發(fā)布的所有,即對自己的文章,評論,分類,標簽等進行增刪改查的操作,達到用戶的雙重角色,既是用戶又是管理員,能夠?qū)ψ约旱陌l(fā)布進行控制,達到減輕系統(tǒng)管理工作的目的。具體流程圖如圖5所示:
2.3 系統(tǒng)后臺可以管理整個系統(tǒng)
系統(tǒng)后臺提供超級管理員訪問的入口,為了使平臺發(fā)布的內(nèi)容以及對注冊的用戶進行行為控制等,必須使平臺擁有自己定義的管理員,對系統(tǒng)中各個用戶進行控制,對系統(tǒng)中全部文章進行控制,對系統(tǒng)中全部評論進行控制等等。設(shè)計系統(tǒng)后臺可以管理整個系統(tǒng)就是實現(xiàn)這一目的的手段。具體如圖6所示:
3 系統(tǒng)界面設(shè)計
四方博客平臺是一款綜合型博客平臺,并使用了爬蟲技術(shù)實現(xiàn)首頁博客熱門文章的抓取并顯示,主要提供發(fā)布及展示以及管理等功能,系統(tǒng)大致劃分為四個模塊,即用戶注冊登錄,信息展示,用戶管理自己發(fā)布,系統(tǒng)管理用戶。
1)用戶注冊登錄模塊:注冊提供用戶參與到系統(tǒng)信息構(gòu)建的入口,提升用戶權(quán)限,使用戶能夠具有比游客這一角色更豐富的權(quán)限;登錄提供用戶發(fā)布信息以及管理信息的入口,只有在登錄狀態(tài)下,才能夠進行數(shù)據(jù)管理。
2)信息展示模塊:此模塊為用戶提供系統(tǒng)首頁博客文章的渲染,其中使用了分頁對數(shù)據(jù)進行良好的呈現(xiàn),此外,還提供有個人博客園信息的展示,文章詳情信息的查看等的接口。
3)用戶管理自己發(fā)布模塊:用戶個人模塊中各一部分,提供用戶對不同信息的操控,管理的對象是自己所發(fā)布的所有內(nèi)容即文章,評論,標簽,分類等。
4)系統(tǒng)管理用戶模塊:提供對平臺控制的接口,能夠使平臺的信息安全穩(wěn)定的呈現(xiàn)給訪問站點的用戶。
4 小結(jié)
本系統(tǒng)開發(fā)使用python中的Web框架即Django進行開發(fā),能夠通過簡短的代碼編寫,實現(xiàn)系統(tǒng)構(gòu)建,經(jīng)過測試,系統(tǒng)各個功能模塊都能正常運行,能夠提供注冊到平臺的用戶發(fā)布文章的權(quán)限,其中,發(fā)布文章頁面使用插件,使鏈接,圖片等都不會失效或錯位。使用Django開發(fā)綜合型博客平臺,設(shè)計系統(tǒng)角色,著手系統(tǒng)部署等,從實踐中掌握技術(shù)的使用,理解接口如何編寫等,便是開發(fā)此系統(tǒng)的意義所在,同時,此系統(tǒng)可供學(xué)術(shù)交流的目的。
參考文獻:
[1] 王啟明, 羅從良. Python3.6零基礎(chǔ)入門與實戰(zhàn)[M]. 北京: 清華大學(xué)出版社,2018.
[2] 劉長龍. Python高效開發(fā)實戰(zhàn)[M]. 北京: 電子工業(yè)出版社,2016.
[3] 王珊, 薩師煊. 數(shù)據(jù)庫系統(tǒng)概論[M]. 5版. 北京: 高等教育出版社, 2014(9): 130-185.
[4] Anany Levitin.算法設(shè)計與分析基礎(chǔ)[M]. 3版. 潘彥, 譯. 北京: 清華大學(xué)出版社, 2015.
[5] 王友釗, 黃靜. Django開發(fā)寶典[M]. 北京: 清華大學(xué)出版社,2017.
【通聯(lián)編輯:謝媛媛】