董云影 張紅
摘? 要:隨著網絡時代的發展,用戶參與互聯網的行為不再局限于瀏覽,更多的人希望自己也能成為互聯網的發布者,博客能讓個人在Web上表達自己的心聲。博客體驗不僅是在Web上發布自己的想法,而且還包括獲得其他用戶的反饋并與其交流。博客可以讓來自世界各地的網站讀者就博客上的共享內容提供反饋意見,可以選擇是否允許按帖子發表評論。本文是在熟悉MySQL開發環境基礎上,結合Django開發出的一套基于Python的個人博客系統。博客系統的基本功能包括用戶注冊和登錄、用戶管理、發表博文、刪除博文、評論以及搜索博文等。
關鍵詞:博客;Python;MySQL;Django
1 前言
“博客”(Blog或Weblog)一詞源于“Web Log(網絡日志)”的縮寫,是一種十分簡易的傻瓜化個人信息發布方式。讓任何人都可以像免費電子郵件的注冊、寫作和發送一樣,完成個人網頁的創建、發布和更新。如果把論壇(BBS)比喻為開放的廣場,那么博客就是你的開放的私人房間??梢猿浞掷贸谋炬溄印⒕W絡互動、動態更新的特點,在你“不停息的網上航行”中,精選并鏈接全球互聯網中最有價值的信息、知識與資源;也可以將你個人工作過程、生活故事、思想歷程、閃現的靈感等及時記錄和發布,發揮您個人無限的表達力;更可以以文會友,結識和匯聚朋友,進行深度交流溝通。博客的不同層次的杠桿效應共同作用,會形成網絡新經濟大爆發的全新景象。結合編程語言,開發個人博客系統可以很方便的管理自己的博客,在技術層面來說具有擴展性和靈活性。
2 Python的發展
1991年,第一個Python編譯器誕生。它是用C語言實現的,并能夠調用C語言的庫文件。從一出生,Python已經具有了:類,函數,異常處理,包含表和詞典在內的核心數據類型,以及模塊為基礎的拓展系統。Python語法很多來自C,但又受到ABC語言的強烈影響。來自ABC語言的一些規定直到今天還富有爭議,比如強制縮進。但這些語法規定讓Python容易讀。另一方面,Python聰明的選擇服從一些慣例,特別是C語言的慣例,比如回歸等號賦值。Guido認為,如果“常識”上確立的東西,沒有必要過度糾結。Python從一開始就特別在意可拓展性。Python可以在多個層次上拓展。從高層上,你可以直接引入.py文件。在底層,你可以引用C語言的庫。Python程序員可以快速的使用Python寫.py文件作為拓展模塊。但當性能是考慮的重要因素時,Python程序員可以深入底層,寫C程序,編譯為.so文件引入到Python中使用。Python就好像是使用鋼構建房一樣,先規定好大的框架。而程序員可以在此框架下相當自由的拓展或更改。最初的Python完全由Guido本人開發。Python得到Guido同事的歡迎。他們迅速的反饋使用意見,并參與到Python的改進。Guido和一些同事構成Python的核心團隊。他們將自己大部分的業余時間用于hack Python。隨后,Python拓展到研究所之外。Python將許多機器層面上的細節隱藏,交給編譯器處理,并凸顯出邏輯層面的編程思考。Python程序員可以花更多的時間用于思考程序的邏輯,而不是具體的實現細節。這一特征吸引了廣大的程序員,Python開始流行。
3 基于Python的博客設計
對于Python的發展,更多的涉及數據分析和人工智能領域,此博客系統是基于Python基礎語言和互聯網開發設計的,可以在博客系統中添加智能算法,根據瀏覽的內容不同和瀏覽人群的統計,來計算一篇博文可能會吸引什么樣的讀者類型,也可以給不同的讀者推送不一樣的文章,甚至預測一篇博文的點擊量以及可能會帶來怎樣的社會影響。而博客數據庫部分主要是MySQL完成,MySQL最早由瑞典MySQL公司開發的一個關系型數據管理軟件(DBMS),經過10多年的發展,功能更加強大完善。MySQL提供完整的結構化查詢語言,如select,delete,insert,update等語句,此外,通過最新的workbench圖形化編輯管理系統,可以對數據庫提供更加高效直觀的開發體驗。通過對博客系統的功能需求分析,根據需求,可以大致構建出所需要的數據庫關系圖標。博客系統模塊比較多,根據不同模塊,首先來設計數據庫的表。一般來說,一個表存儲一個實體或者對象的相關信息,這樣在開發過程中,對數據庫操作就相對容易。對于不同的對象或者實體,可以更具系統需要逐漸擴展,另外,不同的擴充信息和動態變化可分開放在不同的表里。重要的表設置唯一標識的主鍵,該主鍵不存儲實際運用中的任何信息,只用來唯一標識一個數據。最后不斷測試,調用Python不同模塊,完成個人博客的搭建。個人博客系統相對來說更靈活,可以自己更改樣式,不斷完善,結合CSS特效以建立具有個人風格的博客。
參考文獻
[1]Paul Barry.Head First Python[M].南京:東南大學出版社,2011.
[2]Zed A.Shaw.Learn Python the Hard Way[M].北京:人民郵電出版社,2014.
[3]Mark Lutz.Learning Python[M].北京:機械工業出版社,2011.
[4]Wesley Chun.Python core Programming[M].北京:人民郵電出版社,2008.
[5]Micha Gorelick and Ian Ozsvald.High Performance Python[M].北京:人民郵電出版社,2017.
[6]Julien Danjou.The Hacker's Guide to Python[M].北京:人民郵電出版社,2015.
[7]Faruque Sarker.Python Network Programming Cookbook[M].北京:人民郵電出版社,2014.
[8]Leif Azzopardi.Tango with Django[M].北京:人民郵電出版社,2015.
[9]David Cochran.Bootstrap Site Blueprints[M].北京:人民郵電出版社,2015.
[10]Eff Forcier and Paul Bissex.Python Web Development with Django[M]. 北京:機械工業出版社,2009.
[11]Adam Freeman.The Definitive Guide to HTML5[M].北京:人民郵電出版社,2014.
[12]Jeremy D. Zaw.High Performance MySQL[M].Beijing:O'Reilly Media,2004.
[13]董偉明.Python Web開發實戰[M].北京:電子工業出版社,2016.
[14]張志強,趙越.零基礎學Python[M].北京:機械工業出版社,2015.
[15]張穎,賴勇浩.編寫高質量代碼:改善Python程序的91個建議[M].北京:機械工業出版社,2014.
[16]楊佩璐,宋強.Python寶典[M].北京:機械工業出版社,2014.
[17]王友釗,黃靜.Django開發寶典[M].北京:清華大學出版社,2016.
[18]曹劉陽.編寫高質量代碼[M].北京:機械工業出版社,2010.
[19]林小志.CSS那些事兒[M].北京:電子工業出版社,2009.
[20]王冉陽.基于Django和Python的Web開發[D].北京:中國地質大學,2009.