博客系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)_第1頁(yè)
博客系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)_第2頁(yè)
博客系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)_第3頁(yè)
博客系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)_第4頁(yè)
博客系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)_第5頁(yè)
已閱讀5頁(yè),還剩15頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

博客系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)目錄概述 4現(xiàn)狀 51.開(kāi)發(fā)工具介紹 51.1Django簡(jiǎn)介 51.2MySQL數(shù)據(jù)庫(kù)簡(jiǎn)介 61.3Redis簡(jiǎn)介 71.4Python簡(jiǎn)介 71.5PyCharm簡(jiǎn)介 82系統(tǒng)開(kāi)發(fā)和環(huán)境介紹 82.1基本環(huán)境 82.2Pyenv環(huán)境安裝 82.3安裝其他部分: 92.4PyCharm安裝 92.5安裝Django等 93設(shè)計(jì)需求的主要內(nèi)容 103.1博客系統(tǒng)頁(yè)面設(shè)計(jì)布局 103.2網(wǎng)站頁(yè)面布局 103.3普通用戶注冊(cè)頁(yè)面 103.4普通用戶存儲(chǔ) 103.5博文發(fā)表與存放 103.6博文瀏覽查看 104研究目標(biāo)與主要內(nèi)容 104.1開(kāi)發(fā)背景 104.2系統(tǒng)功能需求分析 114.3研究目標(biāo) 115.博客系統(tǒng)的功能特性 115.1管理員的功能特性 115.1.1博客主要版面的定義,修改,刪除 115.1.2博客次要版面的定義,修改,刪除 115.1.3博客的發(fā)布,修改,刪除,審核狀態(tài)的更改 125.1.4博客系統(tǒng)的用戶的管理 125.1.5博客系統(tǒng)用戶的密碼修改 125.1.6博客日志記錄 125.1.7博客數(shù)據(jù)統(tǒng)計(jì) 125.2普通用戶的功能特性 125.2.1博客注冊(cè)登錄和密碼管理 125.2.2博客文檔的發(fā)布,修改,刪除 135.2.3博客圖片上傳 135.2.4博客文檔編輯預(yù)覽 135.2.5博客文檔評(píng)論 135.3未注冊(cè)用戶功能特性 135.3.1博客文檔瀏覽 135.3.2博客文檔點(diǎn)贊 135.3.3博客文檔轉(zhuǎn)發(fā)分享 146系統(tǒng)流程分析 146.1系統(tǒng)的功能圖 146.2系統(tǒng)的功能圖 146.2.1系統(tǒng)的用例圖 146.3系統(tǒng)的流程圖 157系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn) 157.1數(shù)據(jù)庫(kù)設(shè)計(jì) 157.1.1角色分析 157.1.2系統(tǒng)前后臺(tái)設(shè)計(jì) 167.1.3部分功能代碼 188總結(jié)與展望 209參考文獻(xiàn) 20概述目前,知識(shí)的學(xué)習(xí)十分的重要,咱們要做到的不是固步自封,而是應(yīng)該共享給互聯(lián)網(wǎng)上的所有的人,雖然現(xiàn)在知識(shí)的學(xué)習(xí)還是也很方便,但是好的成果要懂得分享。博客系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)就能夠?qū)崿F(xiàn)該功能,普通用戶和管理員用戶發(fā)表博文后,其他非注冊(cè)都可以進(jìn)行瀏覽查看,同時(shí)普通用戶也可以點(diǎn)贊分享而且還可以記錄一些重要的信息等。在博客web系統(tǒng)開(kāi)發(fā)活動(dòng)中,無(wú)論那種服務(wù)系統(tǒng),現(xiàn)今應(yīng)用系統(tǒng)的開(kāi)發(fā)仍然是開(kāi)發(fā)的一大主題,博客就是一個(gè)典型的B/S模式的系統(tǒng)。一個(gè)龐大的博客管理系統(tǒng)面向的多用戶,提供的功能也不少,如提供用戶注冊(cè)、用戶管理、個(gè)人博客、發(fā)表博文、刪除博文、留言、以及搜索博文等。本系統(tǒng)采用了Django框架進(jìn)行開(kāi)發(fā)。本文主要分析了該系統(tǒng)實(shí)現(xiàn)的相關(guān)技術(shù)原理與數(shù)據(jù)設(shè)計(jì),給出了博客的系統(tǒng)架構(gòu),并對(duì)架構(gòu)及管理模塊結(jié)構(gòu)作了劃分及設(shè)計(jì)。本系統(tǒng)采用了當(dāng)前流行的B/S結(jié)構(gòu),通過(guò)運(yùn)用Python、Django、SQL數(shù)據(jù)庫(kù)等軟件的強(qiáng)大功能完成了該系統(tǒng)的設(shè)計(jì)。本系統(tǒng)完成了用戶注冊(cè)功能,用戶需要設(shè)定自己的Username和Password以及自己的個(gè)人信息;普通用戶的登錄功能、系統(tǒng)管理員后臺(tái)登錄功能,普通用戶只有輸入正確的Username、Password才可以成功登錄;用戶修改Password功能,用戶修改Password的實(shí)現(xiàn)只能在登陸的情況下;博客系統(tǒng)管理員權(quán)限最高,具有修改普通用戶的所有信息功能,系統(tǒng)管理員可以修改普通用戶的Username與Password、博客系統(tǒng)的博文及博文的點(diǎn)贊;普通用戶發(fā)表博文,普通用戶在成功登陸后才可以在自己的博客中發(fā)表相關(guān)博文,同時(shí)也可以進(jìn)行瀏覽或者是留言。普通用戶不論登陸與否,都可以瀏覽所有的博文,普通用戶成功登陸后才可以對(duì)自己發(fā)表的博文進(jìn)行修改刪除;普通用戶發(fā)表和添加分類信息,普通用戶成功登陸后,當(dāng)發(fā)表博文時(shí),可以自定義添加分類。下面主要對(duì)博客的開(kāi)發(fā)與設(shè)計(jì)進(jìn)行了概述、系統(tǒng)開(kāi)發(fā)環(huán)境、系統(tǒng)分析、設(shè)計(jì)與實(shí)現(xiàn)等的介紹。關(guān)鍵詞:Python;Django;Mysql;Redis;Pycharm現(xiàn)狀在當(dāng)今網(wǎng)絡(luò)技術(shù)逐漸滲入人們生活的方方面面,人與人之間的交流方式也變得多種多樣,在龐大得網(wǎng)絡(luò)種的博客系統(tǒng)則是一個(gè)非常重要的方式。博客系統(tǒng)在二十一世紀(jì)這個(gè)飛速發(fā)展的網(wǎng)絡(luò)時(shí)代已經(jīng)成為人們生活中不可替代的一部分,Blog又被人們稱為網(wǎng)絡(luò)日記或者網(wǎng)絡(luò)帖子、也有得被稱為部落閣等,一般情況下都是由個(gè)人或者組織工作室進(jìn)行管理、不定期的更新發(fā)表博文,或者刪除博文。博客系中的文章顯示順序可以根據(jù)發(fā)表博文的發(fā)表時(shí)間進(jìn)行排列,也可以倒序方式由新得博文到舊得博文排列順序進(jìn)行顯示。很多博客系統(tǒng)專注在特定的課題上提供評(píng)論進(jìn)行分享交流,例如本博客中提到網(wǎng)絡(luò)方向:路由、交換、安全、數(shù)據(jù)中心、協(xié)作、無(wú)線、SDN作為分享和交流的課題;也可在博客中體現(xiàn)自己的學(xué)習(xí)心得或?qū)W習(xí)筆記,興趣愛(ài)好,網(wǎng)絡(luò)硬件產(chǎn)品的展示,設(shè)備配置手冊(cè),配置文檔實(shí)例等等。一般博文基本都是由大量文字,少量圖片,或者視頻內(nèi)容,鏈接URL來(lái)展示作者要表達(dá)的內(nèi)容。這樣以來(lái)讀者就更容易明白博文所表達(dá)的內(nèi)容。讀者可以在閱讀完博文之后可以留下自己的看法與意見(jiàn)進(jìn)行交流互動(dòng)。著也是很多博客系統(tǒng)的必要組成部分。現(xiàn)在很多博文一般都是由文字形式來(lái)表現(xiàn)。用戶在打開(kāi)博文由于都是文字打開(kāi)的速度也很迅速。對(duì)于一般公司或者個(gè)人來(lái)講,博客系統(tǒng)也稱得上是社會(huì)媒體的一部分。現(xiàn)如今有的博客系統(tǒng)都能為人們提供最具影響全面的學(xué)習(xí)交流互動(dòng)平臺(tái),例如國(guó)內(nèi)有:36氪,i黑馬,月光博客,天涯海閣,國(guó)外:TechCrunch,ReadWriteWeb,SiliconAlleyInsider。都是繼Email、MSN之后興起的網(wǎng)絡(luò)交流方式,已經(jīng)成為大眾最流行的互聯(lián)網(wǎng)新興媒體的代表之一。目前國(guó)內(nèi)的大型博客代表有:鳳凰博客,網(wǎng)易博客,人民網(wǎng)博客等?,F(xiàn)今社會(huì)是一個(gè)信息化的時(shí)代,博文作為信息的一部分有著信息量大而且全面,類別多樣,形式多的特點(diǎn),博客就此產(chǎn)生。有的博客系統(tǒng)系統(tǒng)中發(fā)表的博文是作者所看所想或者是一個(gè)事件的目擊者,因?yàn)榘l(fā)表的內(nèi)容比新聞網(wǎng)站或者電視頻道都要及時(shí),所以博客系統(tǒng)也可以看作是一個(gè)新聞傳播平臺(tái)。當(dāng)然也要防止一些偽造新聞或者謠言,博客系統(tǒng)需要對(duì)博文進(jìn)行上傳,分類,審核通過(guò)之后,發(fā)表展現(xiàn)給受眾。1.開(kāi)發(fā)工具介紹1.1Django簡(jiǎn)介Django是高效得web開(kāi)發(fā)框架,Django可以讓程序開(kāi)發(fā)者用最小的代價(jià)構(gòu)建和維護(hù)更高質(zhì)量的Web應(yīng)用程序。Django是Python開(kāi)發(fā)并且是自由的和開(kāi)放源碼的web應(yīng)用程序框架。web框架是一套組件,能幫助你更快、更容易地開(kāi)發(fā)web站點(diǎn)。當(dāng)你開(kāi)始構(gòu)建一個(gè)web站點(diǎn)時(shí),你總需要一些相似的組件:處理用戶認(rèn)證(注冊(cè)、登錄、登出)的方式、一個(gè)管理站點(diǎn)的面板、表單、上傳文件的方式,等等。幸運(yùn)的是,其他人很早就注意到web開(kāi)發(fā)人員會(huì)面臨一些共同的問(wèn)題。所以他們聯(lián)手創(chuàng)建了web框架(Django是其中一個(gè))來(lái)讓你使用。由于框架的存在,你無(wú)需重新發(fā)明輪子就能建立新的站點(diǎn)。Django采用的是MVC的軟件設(shè)計(jì)模式,即模型(M),視圖(V)和控制器(C)。Django的全貌urls.py網(wǎng)址入口,URL路由在Django開(kāi)發(fā)項(xiàng)目中的最能體現(xiàn)就是urls.py文件,這個(gè)文件可以是很多個(gè)組成,但都需要放在不同的文件夾中。實(shí)際上Django提倡項(xiàng)目有個(gè)根urls.py,各app下分別有自己的一個(gè)urls.py,既集中又分治,是一種解耦的模式。views.py是用來(lái)處理客戶端發(fā)來(lái)的請(qǐng)求,從urls.py中對(duì)應(yīng)過(guò)來(lái),是通過(guò)渲染templates中的網(wǎng)頁(yè)可以將顯示內(nèi)容,比如普通用戶登陸成功后的用戶名,普通用戶請(qǐng)求的數(shù)據(jù),輸出到網(wǎng)頁(yè)顯示。models.py與數(shù)據(jù)庫(kù)操作相關(guān),存入或讀取數(shù)據(jù)時(shí)用到這個(gè),當(dāng)然用不到數(shù)據(jù)庫(kù)的時(shí)候你可以不使用。forms.py表單,用戶在瀏覽器上輸入數(shù)據(jù)提交,對(duì)數(shù)據(jù)的驗(yàn)證工作以及輸入框的生成等工作,當(dāng)然你也可以不使用。templates文件夾views.py處理用戶發(fā)出的請(qǐng)求,從urls.py中對(duì)應(yīng)過(guò)來(lái),通過(guò)渲染templates中的網(wǎng)頁(yè)可以將顯示內(nèi)容,比如登陸后的用戶名,用戶請(qǐng)求的數(shù)據(jù),輸出到網(wǎng)頁(yè)。admin.py管理后臺(tái),寫(xiě)較少的代碼就可以實(shí)現(xiàn)一個(gè)強(qiáng)大的后臺(tái)。settings.py是用來(lái)放置Django的設(shè)置和配置等文件,比如有:DEBUG的開(kāi)關(guān),靜態(tài)配置文件的位置等等。1.2MySQL數(shù)據(jù)庫(kù)簡(jiǎn)介MySQL最早期是一個(gè)叫MontyWidenius在一個(gè)名為T(mén)cX的小公司打工并用BASIC設(shè)計(jì)了一個(gè)報(bào)表工具,可以在4M主頻和16KB內(nèi)存的計(jì)算機(jī)上運(yùn)行。過(guò)了不久,又將此工具使用C語(yǔ)言重寫(xiě),移植到Unix平臺(tái),當(dāng)時(shí),它只是一個(gè)很底層的面向報(bào)表的存儲(chǔ)引擎。1996年,MySQL1.0發(fā)布,只面向一小撥人,相當(dāng)于內(nèi)部發(fā)布。到了96年10月,MySQL3.11.1發(fā)布了。MySQL優(yōu)點(diǎn):運(yùn)行速度快:MySQL體積小,命令執(zhí)行的速度快;使用成本低:MySQL是開(kāi)源的,且提供免費(fèi)版本,對(duì)大多數(shù)用戶來(lái)說(shuō)大大降低了使用成本;使用容易:與其他大型數(shù)據(jù)庫(kù)的設(shè)置和管理相比,其復(fù)雜程度較低,易于使用;可移植性強(qiáng):MySQL能夠運(yùn)行與多種系統(tǒng)平臺(tái)上,如Windouws,Linux,Unix等操作系統(tǒng)上;適用更多用戶:MySQL支持最常用的數(shù)據(jù)管理功能,適用于中小型企業(yè)甚至大型網(wǎng)站應(yīng)用。MySQL是一款安全、跨平臺(tái)、高效,而且是最流行的開(kāi)源數(shù)據(jù)庫(kù)軟件之一?;趕ocket編寫(xiě)的C/S架構(gòu)的軟件,此外MySQL具有速度快、穩(wěn)定性、可靠性和適應(yīng)性而備受廣大開(kāi)發(fā)者青睞,MySQL是管理內(nèi)容最好的選擇。MySQL數(shù)據(jù)庫(kù)軟件已經(jīng)是廣為人知。1.3Redis簡(jiǎn)介Redis是開(kāi)源免費(fèi)的遠(yuǎn)程字典服務(wù),是一個(gè)由SalvatoreSanfilippo寫(xiě)的key-value高性能的存儲(chǔ)系統(tǒng)。內(nèi)存中的數(shù)據(jù)結(jié)構(gòu)存儲(chǔ)系統(tǒng),它可以用作數(shù)據(jù)庫(kù)、緩存和消息中間件。它支持多種類型的數(shù)據(jù)結(jié)構(gòu),如字符串(strings),散列(hashes),列表(lists),集合(sets),有序集合(sortedsets)與范圍查詢,bitmaps,hyperloglogs和地理空間(geospatial)索引半徑查詢。Redis是使用ANSIC語(yǔ)言編寫(xiě)、遵守BSD協(xié)議、支持網(wǎng)絡(luò)連接、可基于內(nèi)存亦可持久化的日志型、Key-Value數(shù)據(jù)庫(kù),并提供多種語(yǔ)言的API。支持?jǐn)?shù)據(jù)的持久化,將內(nèi)存中正在運(yùn)行的數(shù)據(jù),保存到磁盤(pán),重啟之后再次讀取磁盤(pán)中的數(shù)據(jù),也支持?jǐn)?shù)據(jù)的備份。最看重的還是性能極高,Redis能讀的速度可以達(dá)到110000次/s,寫(xiě)入速度81000次/s。Redis支持主從復(fù)制,即master-slave模式的數(shù)據(jù)備份。1.4Python簡(jiǎn)介Python即翻譯為“蟒蛇”,Python國(guó)外大佬GuidovanRossum在1989年,為了消磨閑暇時(shí)間發(fā)明的一個(gè)優(yōu)秀的編程語(yǔ)言,作者之前也是名C++程序員。Python是一種跨平臺(tái)的計(jì)算機(jī)程序語(yǔ)言。1991年,第一個(gè)Python編譯器誕生。它是用C語(yǔ)言實(shí)現(xiàn)的,并能夠調(diào)用C語(yǔ)言的庫(kù)文件。從一出生,Python已經(jīng)具有了:類,函數(shù),異常處理,包含表和詞典在內(nèi)的核心數(shù)據(jù)類型,以及模塊為基礎(chǔ)的拓展系統(tǒng)。Python內(nèi)置很多優(yōu)秀的庫(kù),如果你感覺(jué)不夠使用還可以使用第三方庫(kù);也可以將自己使用的庫(kù)分享出來(lái)。現(xiàn)在Python編寫(xiě)的web網(wǎng)站都很成熟。目前有很多大型網(wǎng)站都使用Python寫(xiě)的,例如:國(guó)外的視頻網(wǎng)站YouTube、社交網(wǎng)站Instagram,NASA(美國(guó)航空航天局),還有國(guó)內(nèi)的豆瓣,都大量地使用Python。Python這門(mén)語(yǔ)言,學(xué)習(xí)成本很低,新學(xué)者很容易上手,將來(lái)深入學(xué)習(xí)下去,也可以編寫(xiě)那些非常優(yōu)秀的程序。1.5PyCharm簡(jiǎn)介PyCharm對(duì)比Ipython個(gè)人感覺(jué)還是PyCharm要順手的多,是我用過(guò)的python編輯器中最好用的一個(gè)Python開(kāi)發(fā)工具。PyCharm也是目前使用最多最流行的Python開(kāi)發(fā)工具。PyCharm的優(yōu)勢(shì)有很多比如:編碼補(bǔ)全,會(huì)顯示出以這個(gè)代碼開(kāi)頭的一些代碼供開(kāi)發(fā)者選擇,代碼片段,支持代碼折疊和分割窗口的智能、可配置的編輯器,這樣開(kāi)發(fā)者就可以輕松快速的完成開(kāi)發(fā)工作,Python代碼重構(gòu),該功能程序開(kāi)發(fā)者便能在開(kāi)發(fā)項(xiàng)目范圍內(nèi)方便的進(jìn)行重命名,提取方法/超類,導(dǎo)入域/變量/常量,移動(dòng)和前推/后退重構(gòu),代碼分析,用戶可使用其編碼語(yǔ)法,錯(cuò)誤代碼高亮顯示,智能檢測(cè)代碼以及一鍵式代碼快速補(bǔ)全建議,使得代碼變得更加優(yōu)化。而且還可以跨平臺(tái)使用,在Macos操作系統(tǒng)和Windows操作系統(tǒng)下面都可穩(wěn)定運(yùn)行,這就是PyCharm優(yōu)秀的特點(diǎn)。PyCharm是一種PythonIDE,IDLE是Python軟件包自身集成的一個(gè)開(kāi)發(fā)環(huán)境,PythonShell輸入需要的代碼后回車代碼立即執(zhí)行,并顯示結(jié)果。2系統(tǒng)開(kāi)發(fā)和環(huán)境介紹2.1基本環(huán)境在Linux(CentOS7)系統(tǒng)環(huán)境下,使用Python編程語(yǔ)言為基本開(kāi)發(fā)語(yǔ)言,通過(guò)使用成熟的Django框架、MySOL數(shù)據(jù)庫(kù)和Reids、Apache服務(wù)器等相關(guān)知識(shí),利用Python語(yǔ)言的便于快速開(kāi)發(fā)的特性及MVC設(shè)計(jì)思想,設(shè)計(jì)一個(gè)博客博文管理方案,模擬一個(gè)博客系統(tǒng)。2.2Pyenv環(huán)境安裝1.pyenv環(huán)境安裝,安裝,和配置Python,創(chuàng)建用戶python,pyenv環(huán)境安裝git安裝2.yuminstallgit-y3.yum-yinstallgccmakepatchgdbm-developenssl-develsqlite-develreadline-develzlib-develbzip2-devel安裝Python編譯依賴4.curl-L/pyenv/pyenv-installer/raw/master/bin/pyenv-installer|bash5.pyenvversion查看當(dāng)前虛擬環(huán)境版本6.python–V查看Python版本7.pyenvlocal3.5.3在項(xiàng)目目錄上安裝虛擬環(huán)境,為了將來(lái)安裝的python其他安裝包不影響系統(tǒng)公共目錄2.3安裝其他部分:1.pip–V2.pipinstallredis3.pipinstalljupyter4.安裝Python后,運(yùn)行Python,就會(huì)進(jìn)入Python交換模式(圖)2.4PyCharm安裝windows下安裝python和社區(qū)版PyCharm用于測(cè)試2.5安裝Django等首先下載Django安裝包,在系統(tǒng)安裝。E:\workspace\blog_project_venv\Scripts>activate(blog_project_venv)E:\workspace\blog_project_venv\Scripts>pipinstalldjango3設(shè)計(jì)需求的主要內(nèi)容3.1博客系統(tǒng)頁(yè)面設(shè)計(jì)布局主要包括:根據(jù)目前網(wǎng)絡(luò)集成,售前和售后文檔分享和示例,架構(gòu)設(shè)計(jì)等,分為路由,交換機(jī),安全,無(wú)線,協(xié)作,數(shù)據(jù)中心,云等等。3.2網(wǎng)站頁(yè)面布局網(wǎng)站頁(yè)面布局緊湊,使用便捷??紤]系統(tǒng)本身及生成頁(yè)面對(duì)各瀏覽器版本的兼容性。3.3普通用戶注冊(cè)頁(yè)面注冊(cè)頁(yè)面,通過(guò)導(dǎo)入第三方模塊實(shí)現(xiàn)。3.4普通用戶存儲(chǔ)用戶登錄賬號(hào)和密碼使用MySQL存儲(chǔ)。3.5博文發(fā)表與存放博客的相關(guān)信息存放于Web服務(wù)器中,數(shù)據(jù)庫(kù)文件也存放在該Web服務(wù)器中。瀏覽者獲取的信息都是從此Web服務(wù)器中得來(lái)的。3.6博文瀏覽查看瀏覽者可以查看博主的信息,可以看到,首頁(yè),路由,交換,安全,數(shù)據(jù)中心,協(xié)作,無(wú)線,SDN最新的設(shè)備調(diào)試文檔、各板塊的分類文檔等。進(jìn)入相應(yīng)的類別就可以查看此相應(yīng)的信息。4研究目標(biāo)與主要內(nèi)容4.1開(kāi)發(fā)背景Python程序開(kāi)發(fā)設(shè)計(jì)語(yǔ)言在是進(jìn)幾年來(lái)開(kāi)始流行的一種編程語(yǔ)言,它以簡(jiǎn)單易懂、適合快速開(kāi)發(fā)、能夠跨平臺(tái)操作的等特點(diǎn),吸引了廣大開(kāi)發(fā)者的興趣。其實(shí),Python的目前的地位暫時(shí)無(wú)法和Java、C等開(kāi)發(fā)語(yǔ)言相比,但就目前的發(fā)展前景而言,Python確實(shí)獨(dú)一無(wú)二的。Python是一種完全可信賴的程序設(shè)計(jì)開(kāi)發(fā)語(yǔ)言,在國(guó)內(nèi)外都十分的流行,就目前而言,國(guó)內(nèi)也早就開(kāi)始認(rèn)識(shí)它。其具有的可靠性,安全性,穩(wěn)定性,不但令開(kāi)發(fā)者放心,而且使用程序產(chǎn)品的用戶也放心。Python已內(nèi)建了很多內(nèi)容,例如對(duì)網(wǎng)絡(luò)編程,以及數(shù)據(jù)庫(kù)的連接、以及多線程等高級(jí)程序設(shè)計(jì)開(kāi)發(fā)任務(wù)的可靠而有力支持。目前,在很多項(xiàng)目開(kāi)發(fā)活動(dòng)中,無(wú)論何種服務(wù),應(yīng)用系統(tǒng)的開(kāi)發(fā)仍然是開(kāi)發(fā)的重要主題,博客管理系統(tǒng)就是此類的應(yīng)用系統(tǒng)。博主希望能夠發(fā)表一下個(gè)人的想法,文檔的分享,對(duì)各種博文進(jìn)行評(píng)論交流等,這時(shí)就用到了博客。4.2系統(tǒng)功能需求分析作為一個(gè)好的博客系統(tǒng),不僅包括前臺(tái)的美觀同時(shí)后臺(tái)的優(yōu)化和功能也很重要,本系統(tǒng)運(yùn)用Django+Python構(gòu)架,普通用戶可以自己完成用戶注冊(cè)、登錄博客系統(tǒng)、注銷博客系統(tǒng)、修改博客系統(tǒng)中的Username的Password、在博客系統(tǒng)中發(fā)表博文、評(píng)論自己或者其他注冊(cè)用戶的博文、刪除自己發(fā)表的博文、博文點(diǎn)贊不登錄也可以進(jìn)行、博客文章的分享、搜索博客文章等功能,系統(tǒng)管理員具有對(duì)普通的已注冊(cè)用戶的所有信息進(jìn)行修改權(quán)限、刪除的功能,同時(shí)能夠做到對(duì)博文完全管理。本博客系統(tǒng)會(huì)根據(jù)普通用戶的訪問(wèn)一篇博文,進(jìn)行評(píng)論,分享,從而讓優(yōu)秀的博文流傳開(kāi)來(lái)。普通用戶可以創(chuàng)建分類,同時(shí)在該分類下發(fā)表博文,同時(shí)實(shí)現(xiàn)分享點(diǎn)贊功能。4.3研究目標(biāo)1.作為網(wǎng)絡(luò)個(gè)人日記2.個(gè)人展示自己某個(gè)方面的空間3.結(jié)交有共同興趣愛(ài)好的朋友4.學(xué)習(xí)交流的地方5.促進(jìn)學(xué)習(xí)6.記錄收獲和心得7.結(jié)交朋友8.共享知識(shí)5.博客系統(tǒng)的功能特性5.1管理員的功能特性5.1.1博客主要版面的定義,修改,刪除博客系統(tǒng)管理員可以對(duì)博客的主要排版布局就行修改和刪除。5.1.2博客次要版面的定義,修改,刪除博客系統(tǒng)管理員可以對(duì)博客的次要排版布局就行修改和刪除。5.1.3博客的發(fā)布,修改,刪除,審核狀態(tài)的更改博客系統(tǒng)管理員賬號(hào)可以對(duì)普通用戶發(fā)表的博文進(jìn)行審核,審核通過(guò)之后才能顯示在博客系統(tǒng)主頁(yè)面中顯示。5.1.4博客系統(tǒng)的用戶的管理博客系統(tǒng)管理員賬號(hào)權(quán)限最高,可以對(duì)普通賬號(hào)進(jìn)行刪除,修改等操作。5.1.5博客系統(tǒng)用戶的密碼修改如果普通用戶賬號(hào)的密碼遺忘,普通用戶可以通過(guò)自己的郵箱找回,也可以通過(guò)博客系統(tǒng)管理員賬號(hào)可以對(duì)其進(jìn)行密碼修改,重置密碼。5.1.6博客日志記錄博客系統(tǒng)管理員賬號(hào)可以查看整個(gè)博客系統(tǒng)的日志記錄,包括賬號(hào)登錄事件,或者博文發(fā)表事件,博文作者等等。5.1.7博客數(shù)據(jù)統(tǒng)計(jì)博客系統(tǒng)管理員賬號(hào)后臺(tái)可以查看博文被訪問(wèn)次數(shù),和整個(gè)博客系統(tǒng)的訪問(wèn)量。5.2普通用戶的功能特性5.2.1博客注冊(cè)登錄和密碼管理普通用戶登錄是一個(gè)博客系統(tǒng)不可或缺的功能之一,普通用戶要想使用系統(tǒng)提供的功能,比如發(fā)表博文,修改博文,刪除博文,就必須在博客系統(tǒng)中創(chuàng)建一個(gè)屬于自己的帳戶,從而擁有屬于自己的博客。而且要保證賬號(hào)的唯一性,普通用戶在注冊(cè)時(shí)系統(tǒng)要求普通用戶輸入注冊(cè)信息,包括Username,Password,確認(rèn)Password,用戶E-mail、以及用戶頭像選擇等等,假如說(shuō)用戶輸入的Username已經(jīng)存在或者用戶的Username輸入的格式不正確博客系統(tǒng)后臺(tái)將會(huì)向用戶顯示相應(yīng)錯(cuò)誤的彈框提示信息,并提示注冊(cè)用戶更換別的用戶Username或者在用戶上加入數(shù)字來(lái)和系統(tǒng)中已有相同用戶名進(jìn)行區(qū)分或者輸入正確的信息,成功注冊(cè)完以后,顯示注冊(cè)成功信息,方可以進(jìn)行博客系統(tǒng)登錄。普通用戶在注冊(cè)成功后,用戶可以使用之前注冊(cè)的Username和Password登錄到博客系統(tǒng),登錄頁(yè)面要求用戶輸入正確的Username和Password。在輸入U(xiǎn)sername和Password之后,博客系統(tǒng)將驗(yàn)證用戶Username和Password是否正確,如果驗(yàn)證成功,系統(tǒng)后臺(tái)就會(huì)彈出一個(gè)登陸成功的框,并跳轉(zhuǎn)到用戶個(gè)人的空間界面。否則,系統(tǒng)彈出一個(gè)顯示用戶帳戶或密碼錯(cuò)誤的提示信息的框。用戶只有在登陸成功后才可以修改Password,用戶能夠知道舊的Password。在修改Password界面,用戶需要輸入舊Password、新Password和確認(rèn)新Password,只有當(dāng)舊Password正確,兩次輸入的新Password相同時(shí),用戶才能夠進(jìn)行修改,同時(shí)跳轉(zhuǎn)界面;否則博客系統(tǒng)將顯示錯(cuò)誤信息進(jìn)行提示。5.2.2博客文檔的發(fā)布,修改,刪除普通用戶成功登錄之后,可以發(fā)博文,用戶需要填寫(xiě)博文標(biāo)題、博文詳細(xì)內(nèi)容(文字,圖片,視頻),同時(shí)選擇分類(路由交換,無(wú)線,協(xié)作等等),點(diǎn)擊發(fā)表即可發(fā)到自己的博客上。在發(fā)表頁(yè)面,分類后有一個(gè)添加分類,用戶可以在此添加分類。普通用戶登陸后可以在自己的博客中刪除不需要或者已經(jīng)過(guò)時(shí)的博文,需要進(jìn)入博文管理后臺(tái)進(jìn)行博文刪除操作。5.2.3博客圖片上傳上傳博文中需要展示的文檔截圖或者產(chǎn)品圖片等等。5.2.4博客文檔編輯預(yù)覽用戶可以點(diǎn)擊一條博文的title進(jìn)行詳細(xì)的查看該博文的內(nèi)容,在查看界面,登陸用戶可以靜心留言,匿名用戶無(wú)法留言。當(dāng)用戶進(jìn)入首頁(yè)時(shí),系統(tǒng)會(huì)提供可能認(rèn)識(shí)的人,點(diǎn)擊后可以進(jìn)入該用戶的博客。5.2.5博客文檔評(píng)論用戶登陸后可以對(duì)別人的博文進(jìn)行評(píng)論。5.3未注冊(cè)用戶功能特性5.3.1博客文檔瀏覽未注冊(cè)用戶可以直接查看文檔,進(jìn)行完整瀏覽。5.3.2博客文檔點(diǎn)贊未注冊(cè)用戶可以在閱讀完文檔之后,可以對(duì)感興趣的博文進(jìn)行點(diǎn)贊。5.3.3博客文檔轉(zhuǎn)發(fā)分享未注冊(cè)用戶可以在閱讀完文檔之后,可以對(duì)感興趣的博文進(jìn)行點(diǎn)贊。6系統(tǒng)流程分析本網(wǎng)站是一個(gè)博客網(wǎng)站,實(shí)現(xiàn)了用戶的發(fā)博文、評(píng)論博文的功能。前臺(tái)首頁(yè),包括普通用戶首頁(yè),普通用戶注冊(cè)頁(yè)面,普通用戶修改信息頁(yè)面,普通用戶個(gè)人博客頁(yè)面、博文詳細(xì)內(nèi)容顯示頁(yè)面。系統(tǒng)臺(tái)控制,使用流行的Django框架,普通用戶成功注冊(cè)后,保存用戶的必要信息;顯示登陸成功后,用戶才能夠發(fā)表博文、評(píng)論,分享等。6.1系統(tǒng)的功能圖本系統(tǒng)的功能圖如圖所示:6.2系統(tǒng)的功能圖6.2.1系統(tǒng)的用例圖6.3系統(tǒng)的流程圖7系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)7.1數(shù)據(jù)庫(kù)設(shè)計(jì)7.1.1角色分析通過(guò)功能我們找到了四個(gè)角色,接下來(lái)就該分析各各角色之間的關(guān)系。在這里我們首先要分析出博客應(yīng)該是以用戶為主的,用戶登陸進(jìn)入自己的博客,顯示自己的博文,所以是通過(guò)用戶找到的博文,以用戶為主,同時(shí)分析出普通用戶與博文之間的關(guān)系是多對(duì)多的。博文和分類是以分博文為主要的,博文和分類之間是多對(duì)一的關(guān)系。博文與評(píng)論之間是一對(duì)多的關(guān)系,大家都是先瀏覽博文之后再看評(píng)論意見(jiàn)和看法,所以以博文為主。分類與評(píng)論之間沒(méi)有關(guān)系。7.1.2系統(tǒng)前后臺(tái)設(shè)計(jì)1.系統(tǒng)首頁(yè):簡(jiǎn)白底色簡(jiǎn)白底色注冊(cè)|登錄首頁(yè)路由交換安全首頁(yè)路由交換安全 數(shù)據(jù)中心 協(xié)作 無(wú)線 SDN討論主題聯(lián)系方式討論主題聯(lián)系方式網(wǎng)絡(luò)售前售后相關(guān)文檔內(nèi)容關(guān)于本站關(guān)于本站 2.查看博文3.博文發(fā)表4.系統(tǒng)后臺(tái)5.博客登錄7.1.3部分功能代碼1.初始views修改views.py:fromdjango.shortcutsimportrenderfromdjango.httpimportHttpResponsedefhello(request):returnHttpResponse('HelloWorld!')添加內(nèi)容到urls.pyfromdjango.conf.urlsimporturlfromdjango.contribimportadminimportblog.viewsurlpatterns=[url(r'^admin/',admin.site.urls),url(r'^hello/',blog.views.hello),]啟動(dòng)服務(wù):pythonmanage.pyrunserver12342.認(rèn)證和修改密碼fromdjango.contrib.auth.modelsimportUseruser=User.objects.create_user(‘a(chǎn)dmin’,‘demon@123.com’,‘password’)pythonmanage.pycreatesuperuser修改密碼:pythonmanage.pychangepasswordusernamefromdjango.contrib.auth.modelsimportUseru=User.objects.get(username=’admin’)u.set_password(‘newpassword’)u.save()3.系統(tǒng)顯示views.py:fromdjango.shortcutsimportrenderfromdjango.httpimportHttpResponsefromdjango.contrib.auth.decoratorsimportlogin_requiredfrom.importmodels#Createyourviewshere.@login_requireddefindex(request): articles=models.Article.objects.all() returnrender(request,'blog/index.html',{'articles':articles})@login_requireddefarticle_page(request,article_id): article=models.Article.objects.get(pk=article_id) returnrender(request,'blog/article_page.html',{'article':article})@login_requireddefedit_page(request,article_id): ifstr(article_id)=='0': returnrender(request,'blog/edit_page.html') article=models.Article.objects.get(pk=article_id) returnrender(request,'blog/edit_page.html',{'article':article})@login_requireddefchange(request): title=request.POST.get('title','TITLE') content=request.POST.get('content','CONTENT') article_id=request.POST.get('article_id','0') ifarticle_id=='0': models.Article.objects.create(title=title,content=content) articles=model

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論