準備自己建一個個人博客,有什麼好的框架推薦?

暫時的想法是用django或者node.js寫,但如果有更好的推薦,請說出理由,我會仔細考慮的。如果沒其他推薦,請說明用django和node.js寫blog的優劣之處。

另外:不考慮用wordpress


前幾天剛是社群的小夥伴寫了個博客,Django寫博客是很多學習Python人必經之路,今天我特別整理了一個建博客實錄出來希望可以是Django學習之路的一個好啟發,希望對大家有幫助。

——————————

1.django簡介

Django是一個開放源代碼的Web應用框架,由Python寫成。採用了MVC的框架模式,即模型M,視圖V和控制器C。它最初是被開發來用於管理勞倫斯出版集團旗下的一些以新聞內容為主的網站的,即是CMS(內容管理系統)軟體。並於2005年7月在BSD許可證下發布。這套框架是以比利時的吉普賽爵士吉他手Django Reinhardt來命名的。

Django是一個基於MVC構造的框架。但是在Django中,控制器接受用戶輸入的部分由框架自行處理,所以 Django 里更關注的是模型(Model)、模板(Template)和視圖(Views),稱為 MTV模式。

Django適合快速開發web開發。

1.1Django的結構模型

1.2Django相關依賴的環境和安裝

1.準備一個linux的虛擬機

2.安裝一個pyenv:具體安裝的方法看這裡

http://www.yulongjun.com/python/20170507-02-pyenv-centos/

3.通過pyenv 安裝一個python3.6.2

pyenv install 3.6.2

4.使用pip安裝:

pip install django==1.11
pip install mysqlclient

5.安裝mysql資料庫

1.3Django的簡單配置

新建一個項目:

django-admin startproject blog
在項目裡面新建一個app和相關的模版靜態文件:
cd blog
python manage.py startapp ariclte
mkdir templates
mkdir static
mkdir media
配置相關的設置
cd blog
vim settings.py
vim urls.py

settings.py配置

urls.py配置

2Django操作資料庫

2.1Django裡面主要使用orm來操作資料庫

我們來看下什麼是orm

使用orm有什麼好處

Dajngo的orm-model

1.什麼是ORM?

ORM,即Object-Relational Mapping(對象關係映射),它的作用是在關係型資料庫和業務實體對象之間作一個映射,這樣,我們在具體的操作業務對象的時候,就不需要再去和複雜的SQL語句打交道,只需簡單的操作對象的屬性和方法。

2.ORM的優缺點是什麼?

優點:擺脫複雜的SQL操作,適應快速開發;讓數據結構變得簡潔;資料庫遷移成本更低(如從mysql-&>oracle)

缺點:性能較差、不適用於大型應用;複雜的SQL操作還需通過SQL語句實現

2.2Blog的數據結構

blog的常用的數據結構:

文章,分類,評論,註冊

一般來說一個blog至少包含這4個表

我們今天只寫文章表和分類表

大家可以先自己想下:

文章表和分類表包含的欄位是哪些?

文章和分類是什麼關係?

文章和用戶又是什麼關係?

表之間是否需要外鍵進行關聯?

表之間的關係:

一個用戶可以發表多篇文章

一個分類裡面也多篇文章

分類和用戶沒有直接的關係

理清這些之後,現在開始編寫對應的model模型

2.3編寫models.py

2.4創建和同步資料庫

3.Admin

3.1 admin

1.django自帶一個admin的後台,只需要簡單的配置就能讓我們快速的使用,這是django的一個強大之處。

2.配置admin.py之前,需要先了解一下admin的用法

需要繼承admin.ModelAdmin
list_display:admin 後台顯示的欄位
search_fields:admin 後台查詢的欄位
fields:允許修改的欄位
actions: 禁用的操作
admin.site.register: 關聯model和admin

3.2 編寫admin

4.djangod的視圖

4.1Django的視圖

Django有很多的優秀的視圖:

View
DetailView
ListView
FormView
CreateView
DeleteView
UpdateView

我們的blog裡面暫時只用到了ListView和DetailView

4.2使用dajngo自帶的ListView

? 編寫app的views.py

4.3用django自帶的DetailView

4.4配置app的urls.py

4.5 啟用django

訪問admin後台

填充相關的信息

5.配置相關的模板

5.1配置app的模板

1.把模板的index.html 放到templates裡面

2.模板的css,js,images,fonts,kindeditor放到static裡面

3.模版聲明:此模版來自http://www.lushaozhen.com/

5.2模版繼承-base.html

1.首先新建一個base.html

聲明模版

第一行:{% load staticfiles %}

2.block

母版html中將一些需要替換的部分用{% block xxx %}。。。{% endblock %}括起來

模版繼承-index.html

模版繼承-detail.html

5.3前端展示-列表頁面

5.4前端展示-詳情頁

好了,以上為60分鐘建立一個個人博客的全部流程,希望大家玩得爽。

最後把辛苦的作者小智老師介紹下,馬哥教育Python自動化實戰師傅,原百度時代有限公司福州研發分公司移動雲事業部高級運維開發工程師,現福建某文化發展有限公司技術經理,從事4年的python開發和pythonweb開發,擅長團隊協作,性格開朗,愛分享。

——————

你想更深入了解學習Python知識體系,你可以看一下我們花費了一個多月整理了上百小時的幾百個知識點體系內容:

【超全整理】《Python自動化全能開發從入門到精通》筆記全放送

————————

歡迎大家指正和補充。


Hexo


我用Django搭建了一個,就這http://foofish.net,後台資料庫是MySQL,Gunicorn做Web伺服器,Nginx做代理,博客是用MarkDown語法來寫得,但是現在又不喜歡了 。因為我的文章基本都保存在GitHub上的,每次現在每次都是寫好提交到GitHub後在網站也添加一份,巨麻煩,因此接下來我想用Flask+Redis+Nginx+GitHub來搭建一個博客,我覺得個人博客根本用不著MySQL來做


個人博客的話,Jekyll ? Simple, blog-aware, static sites就很夠用啦,都不需要自己配伺服器了,Github就能免費host~

我的網站就是這個做的:Wenli Zhang 代碼可以參見https://github.com/Ovilia/blog/tree/gh-pages

Jekyll就是為了寫博客打造的,這是最大的競爭力。

我很喜歡它的一個優點是可以復用,樣式與內容分離,寫博客的時候就不用管樣式了~

寫完博客後,在自己的電腦上build一下就生成了靜態頁面,push到Github上,這樣就不用server解析了。

如果接觸過一點ruby的話,學習成本幾乎可以忽略。否則的話學習成本也不會太大,一個下午應該就能學會。以後寫完博客發布是非常容易的。

缺點的話畢竟是沒有伺服器的,你不能搞個資料庫什麼的,當然如果你不用Github就可以自己配伺服器了。(像評論這樣的功能還是可以用Disqus – The Web』s Community of Communities 搞定的,可以不需要資料庫)


https://gohugo.io/ 風一樣快

很多回答推薦hexo,大多是兩年前的回答,現在更推薦 hugo


可以利用github-pages 和jekyll來搭建個人博客,不需要伺服器,伺服器託管在github上面,你可以有自己的域名,可以看看這篇文章利用github-pages建立個人博客


補充一個nodejs靜態站點生成工具: harpjs,用起來非常方便,自定義非常方便,用markdown,jade,HTML以及其他任何nodejs可以編譯的模板工具,自己裝個中間件就行了;樣式可以用sass,less,stylus等;

用github pages 也是個不錯的選擇


Ghost

Ghost 開源博客平台

The Ghost Blog

node.js框架寫的。


update: 博客建立細節及部分代碼,在這篇博文 http://martin-liu.github.io/#!/article/4

以下為原文

================

對於個人博客來說,有兩個重要的點:

一是逼格要高,二是簡單易行。

現階段而言,通過github建立博客是能體現逼格的,所以推薦基於github來建立博客。

以下為具體方案:

1. 直接使用github issues

最簡單易行, 不需要寫任何code。參見@玉伯 的博客 http://lifesinger.github.io/ ,支持markdown, 圖片,emoji表情,評論

2. github issues作後台,github pages作前台

方案1的缺點在於不能自由的設計頁面和交互,那麼可不可以寫一個純前端的blog放在github pages, 然後通過某種方式獲得github issues的內容?

當然可以,github API !

見: Issues | GitHub API

甚至還有render markdown的API: Markdown | GitHub API

3. 各路static site generator

如hexo, Jekyll 等,用起來還是方便的,但有一定的learning curve, 自定義的effort較高。

PS:

本人最近剛好也打算建一個博客,便使用方案2寫了一個blog: http://martin-liu.github.io/ 。簡單的頁面,通過ajax去call github API, 然後使用多說作評論系統,用jiathis做社會化分享,再加上個百度統計。對於前端熟手來說,這些東西應該在一兩個小時內可以搞定。

當然還有一些諸如SEO的問題,如果要解決,需要一定的effort。但重點是,你已然有了一個workable的blog


當然是Django 這個脫胎於新聞系統的貨


謝邀請,下面是搭建一個WordPress博客的過程,文章非常詳細,僅針對純白讀者,勿噴,謝謝。

準備工作:

一:域名註冊

一般域名盡量要短一些,然後含義通俗易懂,盡量不要把0o和il1放在一起,國內建議使用阿里雲,國外域名可以使用Godaddy,Name等

二:虛擬主機

購買主機的時候要注意自己的域名是不是已經ICP備案,如果沒有備案不能選擇大陸的主機,建議用香港的,畢竟與日韓美比地理位置相對於大陸較近比。這裡演示用的主機公園的香港虛擬主機,如果你的域名備案了可以選擇大陸的主機,比如阿里雲,騰訊雲都可以

三:博客系統

本文用使用比較廣泛的WordPress做演示,當然如果使用typecho,emlog,discuz 等請參考這個教程如何安裝WordPres?(GIF動態教程)

WordPress地址:China 簡體中文 (請注意大陸訪問會很慢甚至無法載入)

博客搭建:

一:域名解析

Godaddy域名解析請看如何解析域名?(GIF動態教程)

這裡已經購買了 主機公園 的香港虛擬主機,購買完成後會把IP發到我郵箱,我們把域名解析到這個IP即可

二:安裝WordPress

進入用戶中心,產品詳情,登入cPanel

找到圖中所示的SoftaCulou

找到WordPress 並安裝

直接添加基本的管理員信息,不用手動上傳文件,創建資料庫

安裝很快,基本上1分鐘不要,如果你在這步出錯,有可能是因為自己手動創建了資料庫或者上傳了WordPress文件,刪除即可

安裝完成

訪問測試,如果熟悉的話,也就是數分鐘博客就上線了

另外WordPress自帶了國外的服務,被強,在大陸訪問速度很慢,需要優化一下可以到 好奇貓社區 查看更多


好吧,之前正好寫過一個類似的博客,簡單分析了一下常見的各種方法,就貼到這裡啦,希望對大家有一點點幫助哈!

……………………………………………

個人接觸技術比較晚,認識博客還只是始於大一上學期末與CSDN的偶遇,之後平時學習之中,感覺遇到技術上問題時,很多時候解決辦法都是得益於Google到某篇博客,比如CSDN,cnblogs,以及一些獨立博客。

後來也斷斷續續在CSDN上寫過幾遍文章,但很遺憾沒能持續下去。再後來接觸獨立博客久了,加之好奇心的驅動,決定自己折騰出一個獨立博客,這裡先比較一下獨立博客與像CSDN這樣的BSP平台的寫作的區別。對於像我這樣的偽geek來說,毫無疑問是很重視對生活的自主控制權,自由永遠是任何東西都無法替代的,在自己的博客里,你永遠可以定製你自己的生活,而不用忍受那掃興的廣告等條條框框,還不用擔心苦心經營的博客,隨隨便便就被天朝的審核制度封掉。雖說自建博客的訪問量可能早期會很少(記得當時在CSDN的幾篇博客幾天就有近千人的訪問量),但是仔細想想,我們寫博客的最終意義並不是擴大自己的社交圈,而是個人知識與修養的沉澱,也許這本來就需要一個相對安靜的環境,即使社交,我們需要的也僅僅是有質量的社交圈,希望遇到的是懂我們的人,另外就是建立自己的品牌,看你的博客就大概可以了解你是怎樣的一個人,再有就是花時間做自己喜歡的事情,一定會認真的做好。

這裡推薦幾篇覺得不錯的文章:

獨立博客不歸路 蘇於子時 為什麼你應該寫博客 劉未鵬 為什麼要自建博客? 知乎

好了,廢話說了這麼多,是該進入正題了。決定自建博客後,一一嘗試了Wordpress,以及基於Jekyll的HPSTR,Octopress和Hexo.

WordPress

感覺Wordpress過於臃腫,需要自己管理資料庫,管理空間等,很是麻煩。

HPSTR

然後就是基於Jekyll的HPSTR主題,了解到這個還是看了ds886的文章,他用的就是HPSTR主題,試了之後,感覺界面應該算是最簡潔,明快,優雅的了,但是就是有點過了,感覺左上方的菜單對於讀者並不夠友好,而且發現這個主題的中文參考資料並不是很多,擔心之後遇到問題不好解決。

Octopress

於是毫不猶豫的轉向Octopress,參考了靈魂機器的文章在不到半小時內,順利的在Github上訪問到了自己的Octopress博客,第一感覺就是默認主題真不怎麼樣,太「黑」客了,雖說安裝很快,但是深感發布一篇文章步驟之繁雜,而且了解到一旦後期文章多了起來之後,每次編譯時間都需要很久。

Hexo

當時對Nodejs比較感興趣,最後就準備試試Hexo,Google了一下,發現很多Hexo框架的文章,而且Hexo的作者又是中國台灣的,於是好感大增,參考Zipperary以及Aliman的文章,又有了前面的基礎,這次就更快建好了,唯一遇到的一個問題就是安裝node時,建議不要選二進位的.exe安裝,而選.msi的安裝包安裝,試試就知道的。發現安裝過程還算比較簡單的。更重要的是,發布一篇文章的命令實在是太簡單了,只有n-g-(s)-d幾步。看了看默認主題,感覺也不錯,而且Github上可選的主題也很多,最後是看到Pacman風格,應有的功能都有,也比較簡潔,扁平化,響應式布局的體驗很是不錯,就選定了一個優化版的Jackman,希望後期也能夠自己小小優化一下,完全符合自己的風格。

好了,最後總結一下:

如果你只是想記錄記錄生活和感悟,純粹的寫作,那麼選一個CSDN或者簡書這樣的BSP平台寫博客還是不錯的;如果你不是很想了解Ruby,Nodejs這樣的語言,但又想擁有自己的獨立博客而且不介意Wordpress的臃腫,它也是一個不錯的選擇,畢竟這個的使用群體還是相當大的;如果你有潔癖,對界面要求極簡,建議試試HPSTR;如果想順便學習Ruby,請選擇Octopress,如果你和我一樣,對Nodejs感興趣,而且對速度有極致追求,對界面有要求但不挑剔,喜歡折騰就選擇Hexo吧,最後祝大家都能找到一個自己喜歡的記錄生活的方式,若干年後,你一定會感謝現在的你!

大家有什麼問題也可以找我交流哦!Let』s share ,Let』s play !

擴展閱讀:

  1. FarBox、Jekyll、Octopress、ghost、marboo、Hexo···這些博客程序有什麼特點? 知乎
  2. 用 Jekyll 和 Octopress 搭建博客,哪個更合適? 知乎
  3. Hexo 颯爽登場!tommy351
  4. hexo你的博客 不如
  5. 嘗試 Jekyll 博客 各種資料
  6. 作業部落 在線編輯器
  7. Markdown 語法說明 文檔

我的博客原文:WordPress 和 Hexo 等不同博客框架的比較

以上


個人博客的話,使用typecho會比wordpress好一些 。

其實博客的原理並不難,如果是技術性的,自己實現一個博客系統也行。

更多可以看我的博客:http://alipie.com


首先,我看到很多答主推薦了Hexo,配置簡單,並且使用markdown語法,最主要是主題好看,而且可以配合github pages使用。

但是,並不能改變它是靜態頁面的本質。

所以,會出現以下問題:

1.站內搜索難以實現,因為沒有資料庫

2.載入緩慢(當然,可以nigix做反向代理)

而且,可定製程度並不是那麼高,很多人(比如我)就是因為自己寫的主題太難看才不想自己搭blog,所以如果你想自己更改hexo主題的話,其實不比自己寫樣式來的簡單。

既然怎麼都要自己寫樣式。那麼,我來推薦一個技術棧express+mongodb+ejs,博客的功能可以很容易實現(而且有支持markdown的插件),唯一比較傷感的地方就是要自己寫樣式,對於我這種不會設計的人來說實在是太痛苦了。

附上教程nswbmw/N-blog · GitHub


要快速搞定的話推薦Django,因為丫本職就是做CMS的,利用自帶後端可以非常輕鬆的搭建博客,畢竟不一定需要自己做管理後台的前端工作了。插件足夠多,1.7之後版本的數據遷移也很方便。不過如果貴博客訪問量奇大(秒請求數大於200,幾乎不太可能)Django的執行效率或許會有些問題。前端部分自行設計,其實也簡單,況且搞不動了還可以直接上模板渲染……非前端入門的估計會比較喜歡。

Python系的備選是Flask,作為微框架定製性非常優秀,代碼整潔漂亮,對於博客這種小東西而言也很方便。找藍圖和插件的話自己要做的工作也不會太多。ORM可以自選,結合SQLAlchemy的話也很簡單。

至於Tornado,如果你有自己的伺服器或者vps可以優先考慮。Tornado本身是個非同步高性能伺服器,可以省去Apache/NginX這一環。頁面邏輯這一塊走的是web.py的設計,其實不太方便,不過沖著強大的性能和嚴謹的結構也值得一試。輪子不是特別多,要自己動手的地方比較多一點。

Node一方我不是特別熟悉,因為只用來做過中間層。前端入手的估計比較喜歡吧……hexo這樣的框架與其說是框架不如說是已經做好了的blog應用,稍微修改一下就能上線,挺方便的。


只是要求一個博客站點的話,那麼Wordpress分分鐘搞定


那些知名度很高的好框架估計很多人都會提,答主再提也是重複勞動。

而且題主試用之後,估計也確實會覺得它們中的部分或全部「嗯,不錯,是挺好。」

然後選擇其中一個一直用下去,從此過上了幸福的生活……

可喜可賀……

……

……

呃,不覺得少了點什麼?

少嗎?

哪裡少?

好吧,沒什麼……

……

平淡的生活何嘗不是一種至高的幸福,但是……

如果有另一種機會,另一種選擇,另一種人生可以經歷……

當我們老去,我們會不會為當初的選擇而後悔?

或許另一種選擇沒有這麼平靜,沒有這麼順利,可能充滿挑戰……

但,會不會,那才是生命中獨特的一抹色彩?不可取代的重要體驗?

因為那不是會讓我說出「嗯,不錯,是挺好」的東西,而是……

「我X!!!這也行!!!!原來還可以這麼搞啊!!!!!!!」

好吧,廢話自重……我只是想提一下——

TiddlyWiki


我覺得你可以用Evernote寫,有些想公開的直接放出公開鏈接就好了。

GitHub的那些都要裝node.js,目前沒接觸過潔癖不想用。。。


推薦使用Github pages + hexo來搭建靜態博客,較簡單,管理也比較方便,不需要像WordPress那樣租用和管理伺服器,我的博客:Line#x27;s Blog

Hexo + Github Pages博客搭建教程:

Github Pages + Hexo搭建博客(一)

Github Pages + Hexo搭建博客(二)

Github Pages + Hexo搭建博客(三)


Hexo,操作簡單上手快,有詳細的中文資料,基於NodeJS

這個是我的博客:Dodge"s blog


推薦閱讀:

發現有所謂「互聯網公司」在官網提供盜版Windows下載,如何舉報?
糗事百科的內容低俗嗎?
簡書、medium與曾經的博客有什麼區別?又有哪些創新?
如何看待12月6日天翼校園客戶端自帶木馬病毒導致全國大面積 Win10 藍屏的問題?
iPhone 為什麼那麼貴?

TAG:互聯網 | Web20 | Django框架 | 個人博客 |