Python初學(xué)者使用Flask搭建一個(gè)個(gè)人博客的體驗(yàn)與感受

背景

在開(kāi)始介紹博客搭建之前,先介紹下站主的開(kāi)發(fā)背景

  • 博主主要從事 Android 開(kāi)發(fā)谭确,目前5年開(kāi)發(fā)經(jīng)驗(yàn)
  • 同時(shí)熟悉小程序開(kāi)發(fā)和涉及一些前端開(kāi)發(fā)(主要是 vue 相關(guān)項(xiàng)目)
  • Python 為站主從去年9月開(kāi)始自學(xué),用于公司內(nèi)部使用的爬蟲開(kāi)發(fā)和簡(jiǎn)單的接口開(kāi)發(fā)
  • 因?yàn)橐咔槠陂g芬迄,延遲復(fù)工昂秃,萌生一個(gè)使用 Python 開(kāi)發(fā)個(gè)人博客網(wǎng)站的想法

幾個(gè)問(wèn)題

為什么不使用 WorldPress 或者 Hexo 這些成熟的個(gè)站模板來(lái)開(kāi)發(fā)個(gè)人博客?

  1. 站主的目的主要了解和學(xué)習(xí)整個(gè)Web開(kāi)發(fā)從前端到后端的完整開(kāi)發(fā)流程算途。作為一個(gè)前端開(kāi)發(fā)郊艘,了解和學(xué)習(xí)后端以及數(shù)據(jù)庫(kù)相關(guān)技術(shù)唯咬,可以更有效的提升自己,加強(qiáng)自己對(duì)整個(gè)項(xiàng)目的理解胆胰。

  2. WorldPress 和 Hexo 這些模板使用雖然簡(jiǎn)單,但是非常依賴第三方瞎嬉,比如評(píng)論功能厚柳,就是集成的第三方,如果想要自己對(duì)其做些修改定制便监,就比較困難碳想。當(dāng)然,如果你只是關(guān)注最后的成果而不是過(guò)程逊移,那么 WorldPress 和 Hexo 是絕不會(huì)讓你失望的龙填。

為什么不用 Django 而是 Flask?

在 python web 開(kāi)發(fā)中岩遗,Django 可以說(shuō)是老大哥了,始終占據(jù)龍頭地位钳吟。但是 Flask 也不差窘拯,一直熱度高漲,提倡微服務(wù)概念暇番,更加靈活壁酬。當(dāng)然,對(duì)于站主這么一個(gè)剛接觸 python web 的新人來(lái)說(shuō)舆乔,其實(shí)都差不多希俩。那么只能根據(jù)站主自己的感覺(jué)來(lái)選擇了:

  1. 之前使用過(guò) flask 開(kāi)發(fā)過(guò)爬蟲接口,相對(duì)于 django璃搜,對(duì)于 flask 站主要更加熟悉一點(diǎn)

  2. flask 比 django 晚出生5年鳞上,借鑒了 django 的經(jīng)驗(yàn),但是距離目前也有10年的歷史橘原,不是萌新趾断,站主當(dāng)時(shí)覺(jué)得可能更符合目前的技術(shù)潮流(要學(xué)就學(xué)最新的吩愧,當(dāng)前前提是穩(wěn)定有發(fā)展),并且 django 的開(kāi)發(fā)者也說(shuō) flask 是他們最開(kāi)始想要的樣子

  3. github 上的star數(shù)量脐帝,flask 要比 django 多一些(但是兩者還是在同一數(shù)量級(jí)上的)糖权,對(duì)于站主這種不了解的新人來(lái)說(shuō),這也是一個(gè)選擇標(biāo)準(zhǔn)

  4. 然后最后一點(diǎn)疚顷,框架文檔是否齊全腿堤,當(dāng)時(shí)查詢時(shí),django 的文檔是非常齊全的笆檀,并且社區(qū)活躍酗洒。flask 站主也找了一個(gè)官方文檔和幾個(gè)翻譯文檔,感覺(jué)也算良好(當(dāng)時(shí)想的太簡(jiǎn)單:joy:)

綜上樱衷,基于對(duì)新技術(shù)的看好,站主選擇了 flask

個(gè)站功能梳理

驗(yàn)證模塊

因?yàn)椴⒉皇窍牒?jiǎn)單的做個(gè)靜態(tài)網(wǎng)頁(yè)展示封字,想有更多的人參與耍鬓,所以必須提供一個(gè)增加用戶的入口流妻,即注冊(cè)/登錄

  • 登錄: 通過(guò)用戶名或者手郵箱登錄
  • 注冊(cè): 填寫用戶名和郵箱進(jìn)行注冊(cè)(不使用手機(jī)號(hào)是因?yàn)椋l(fā)送驗(yàn)證短信需要小錢錢:joy:涣达,而郵箱每天有一定數(shù)量的免費(fèi)郵件)证薇,用戶角色分三種:普通用戶浑度、有寫作權(quán)限的用戶以及管理員
  • 忘記密碼: 用戶忘記密碼后,通過(guò)注冊(cè)郵箱重置密碼

主模塊

主模塊是整個(gè)個(gè)站的入口甩骏,同時(shí)負(fù)責(zé)跳轉(zhuǎn)至其他模塊

  • 文章展示: 根據(jù)指定規(guī)則(如發(fā)布時(shí)間倒序)來(lái)展示文章列表饮笛,支持分頁(yè)
  • 側(cè)邊欄展示: 如文章分類论熙、文章標(biāo)簽等
  • 關(guān)于: 關(guān)于站主和個(gè)站的描述,并且支持編輯(非靜態(tài))

文章模塊

  • 文章詳情展示: 展示文章內(nèi)容
  • 文章評(píng)論: 提供用戶評(píng)論素跺,支持二級(jí)評(píng)論誉券,需登錄用戶才可評(píng)論(很多個(gè)站都支持游客評(píng)論踊跟,但是考慮到新站沒(méi)有流量踩验,并且防止游客隨意填寫評(píng)論內(nèi)容鸥诽,初期開(kāi)放游客評(píng)論)
  • 文章點(diǎn)贊: 用戶點(diǎn)贊的文章,可以在個(gè)人中心中查看
  • 文章編輯: 支持文章在線創(chuàng)建和編輯(使用markdown)

個(gè)人中心模塊

因?yàn)橹皇莻€(gè)個(gè)人博客網(wǎng)站箕憾,和用戶交互不會(huì)太多牡借,個(gè)站的最主要目的是記錄和分享文章,重點(diǎn)在于文章編輯和展示袭异,個(gè)人中心中簡(jiǎn)單設(shè)計(jì)即可钠龙。

  • 設(shè)置:用戶可在此頁(yè)編輯個(gè)人信息,如頭像御铃、用戶名等
  • 我的私密文章: 用戶在創(chuàng)建文章時(shí)碴里,如果文章還處于草稿狀態(tài)或者不方便對(duì)外公開(kāi),可選擇私密保存上真,不對(duì)外公開(kāi)咬腋,在此頁(yè)可查詢用戶自己的私密文章
  • 收到的贊: 作者可在此處查看自己被點(diǎn)贊的文章
  • 收到的評(píng)論: 作者可在此處查看自己收到評(píng)論
  • 你的贊: 作者可在此處查看自己點(diǎn)贊的文章
  • 你的評(píng)論: 作者可在此處查看自己評(píng)論的文章

使用 Flask 的開(kāi)發(fā)個(gè)站的感受

盡管在開(kāi)發(fā)之前根竿,已經(jīng)做了一些調(diào)研寇壳,但是在實(shí)際開(kāi)發(fā)中壳炎,還是遇到了許多問(wèn)題。當(dāng)然撒汉,這肯定是必然的睬辐,遇到問(wèn)題能解決即可。但是這其中最大的問(wèn)題是 flask 相關(guān)擴(kuò)展的文檔問(wèn)題锨用。

flask 相關(guān)擴(kuò)展的文檔碎片化太嚴(yán)重(之前只關(guān)注了 flask 本身的文檔啄巧,其擴(kuò)展未關(guān)注)秩仆,flask 本身只是提供了一個(gè)服務(wù)器功能噪珊,類似于發(fā)送郵件使用的 flask-mail 擴(kuò)展等都需要自己額外集成。先不說(shuō)這些擴(kuò)展的質(zhì)量如何铅搓,就這些擴(kuò)展的使用文檔有的也不是很全星掰,對(duì)于站主這種新手來(lái)說(shuō),使用時(shí)仍然有疑問(wèn)播玖。

開(kāi)發(fā)整個(gè)搏站,從疫情延遲復(fù)工開(kāi)始果覆,到復(fù)工后正式上班局待,靠著每天下班后抽出點(diǎn)時(shí)間編寫,總計(jì)一個(gè)月多點(diǎn)時(shí)間薛耻,算是比較拖沓的了饼齿。目前站主正在使用 django 重構(gòu)本站項(xiàng)目能颁。因?yàn)橛兄?flask 的開(kāi)發(fā)經(jīng)驗(yàn)在伙菊,所以轉(zhuǎn) django 開(kāi)發(fā)可以說(shuō)比一開(kāi)始從零開(kāi)始時(shí)要容易很多镜硕,里面很多設(shè)計(jì)理念也都很相似。并且 django 因?yàn)楦叨燃傻脑虿破剩鞣N規(guī)范和架構(gòu)都已經(jīng)規(guī)定好(站主本人在入手新技術(shù)時(shí),最想看的就是規(guī)范)咪橙,對(duì)于新手來(lái)說(shuō)應(yīng)該比較友好!

附上兩張站主的Flask項(xiàng)目結(jié)構(gòu)圖(新手所作菠剩,如有不妥之處,歡迎指正)

目錄結(jié)構(gòu)1.jpg

目錄結(jié)構(gòu)2.jpg

小建議

如果有新人也想使用 flask 或者 django 試水搏站,并且有時(shí)間的話,個(gè)人建議可以先從 flask 開(kāi)始妆艘,后使用 django 重構(gòu)批旺。因?yàn)槿绻苯由?django搏熄,作為新手心例,也許會(huì)對(duì)里面的東西產(chǎn)生很多疑惑。就如同搭積木译株,如果直接給你一個(gè)搭好的模型欠橘,再拆開(kāi)后(逆向過(guò)程)黍檩,讓你指出每塊積木的作用刽酱,你可能會(huì)有疑惑棵里。但是讓你親自一步步去搭好后(正向過(guò)程)姐呐,再去拆解模型头谜,你對(duì)每塊積木的都會(huì)有不錯(cuò)的了解截驮。

flask 開(kāi)發(fā)就像是這個(gè)正向過(guò)程(自己一步一步去集成想要的擴(kuò)展嫌拣,完善網(wǎng)站),django 開(kāi)發(fā)就像是逆向過(guò)程(django已經(jīng)幫你集成了許多常用的擴(kuò)展晕讲,你要做的就是去學(xué)習(xí)這些擴(kuò)展的使用)贸弥。走正向?qū)π率值膸椭鷷?huì)比逆向要大的多绵疲。當(dāng)然,如果是一個(gè)沒(méi)有太多時(shí)間的新手的話郁岩,就直接上 django 吧问慎,能最大程度的保證你的項(xiàng)目質(zhì)量如叼。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市猴仑,隨后出現(xiàn)的幾起案子崖飘,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,723評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件廷支,死亡現(xiàn)場(chǎng)離奇詭異施敢,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,485評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門垃僚,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)改淑,“玉大人,你說(shuō)我怎么就攤上這事。” “怎么了?”我有些...
    開(kāi)封第一講書人閱讀 152,998評(píng)論 0 344
  • 文/不壞的土叔 我叫張陵卖局,是天一觀的道長(zhǎng)洒闸。 經(jīng)常有香客問(wèn)我,道長(zhǎng),這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書人閱讀 55,323評(píng)論 1 279
  • 正文 為了忘掉前任哈垢,我火速辦了婚禮鬼癣,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,355評(píng)論 5 374
  • 文/花漫 我一把揭開(kāi)白布当纱。 她就那樣靜靜地躺著廉沮,像睡著了一般滤灯。 火紅的嫁衣襯著肌膚如雪豫尽。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書人閱讀 49,079評(píng)論 1 285
  • 那天绪励,我揣著相機(jī)與錄音大莫,去河邊找鬼贯吓。 笑死,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播喂很,決...
    沈念sama閱讀 38,389評(píng)論 3 400
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼痴怨,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書人閱讀 37,019評(píng)論 0 259
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,519評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡蚪战,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,971評(píng)論 2 325
  • 正文 我和宋清朗相戀三年茅茂,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了碴倾。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,100評(píng)論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 33,738評(píng)論 4 324
  • 正文 年R本政府宣布柑船,位于F島的核電站逆巍,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜鸳兽,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,293評(píng)論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書人閱讀 30,289評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至绽乔,卻和暖如春睦授,著一層夾襖步出監(jiān)牢的瞬間删顶,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書人閱讀 31,517評(píng)論 1 262
  • 我被黑心中介騙來(lái)泰國(guó)打工碾阁, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 45,547評(píng)論 2 354
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,834評(píng)論 2 345

推薦閱讀更多精彩內(nèi)容

  • 本文首發(fā)于Gevin的博客 原文鏈接:Flask 入門指南 未經(jīng) Gevin 授權(quán)鞍恢,禁止轉(zhuǎn)載 1. 初識(shí)Flask...
    Gevin閱讀 16,723評(píng)論 10 237
  • 今天天氣比較美美噠污秆。 因?yàn)榉藕僖丶伊私龋遗笥严牒臀一丶抑凹s一波。今天就來(lái)到了這個(gè)重慶網(wǎng)紅地_____...
    片留閱讀 319評(píng)論 0 8
  • 001.如何讓孩子從容面對(duì)打針 做家長(zhǎng)的首先要不過(guò)分焦慮垢袱,然后告訴孩子打針的原因涌韩,不要過(guò)分夸大打針的痛苦也不要欺騙...
    梓毓爸閱讀 253評(píng)論 8 17
  • 最近一直在思考并持續(xù)的擴(kuò)充著自己的技術(shù)棧嘴拢,比如每天堅(jiān)持著學(xué)習(xí)前端知識(shí)柬姚,并且時(shí)常想著在移動(dòng)端這條路上撕捍,自己的技術(shù)盲區(qū)...
    Originalee閱讀 767評(píng)論 2 7