謝建華 梁杰華 鄭劍



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