Python初学者使用Flask搭建一个个人博客的体验与感受

背景

在开始介绍博客搭建之前,先介绍下站主的开发背景

  • 博主主要从事 Android 开发,目前5年开发经验
  • 同时熟悉小程序开发和涉及一些前端开发(主要是 vue 相关项目)
  • Python 为站主从去年9月开始自学,用于公司内部使用的爬虫开发和简单的接口开发
  • 因为疫情期间,延迟复工,萌生一个使用 Python 开发个人博客网站的想法

几个问题

为什么不使用 WorldPress 或者 Hexo 这些成熟的个站模板来开发个人博客?

  1. 站主的目的主要了解和学习整个Web开发从前端到后端的完整开发流程。作为一个前端开发,了解和学习后端以及数据库相关技术,可以更有效的提升自己,加强自己对整个项目的理解。

  2. WorldPress 和 Hexo 这些模板使用虽然简单,但是非常依赖第三方,比如评论功能,就是集成的第三方,如果想要自己对其做些修改定制,就比较困难。当然,如果你只是关注最后的成果而不是过程,那么 WorldPress 和 Hexo 是绝不会让你失望的。

为什么不用 Django 而是 Flask?

在 python web 开发中,Django 可以说是老大哥了,始终占据龙头地位。但是 Flask 也不差,一直热度高涨,提倡微服务概念,更加灵活。当然,对于站主这么一个刚接触 python web 的新人来说,其实都差不多。那么只能根据站主自己的感觉来选择了:

  1. 之前使用过 flask 开发过爬虫接口,相对于 django,对于 flask 站主要更加熟悉一点

  2. flask 比 django 晚出生5年,借鉴了 django 的经验,但是距离目前也有10年的历史,不是萌新,站主当时觉得可能更符合目前的技术潮流(要学就学最新的,当前前提是稳定有发展),并且 django 的开发者也说 flask 是他们最开始想要的样子

  3. github 上的star数量,flask 要比 django 多一些(但是两者还是在同一数量级上的),对于站主这种不了解的新人来说,这也是一个选择标准

  4. 然后最后一点,框架文档是否齐全,当时查询时,django 的文档是非常齐全的,并且社区活跃。flask 站主也找了一个官方文档和几个翻译文档,感觉也算良好(当时想的太简单:joy:)

综上,基于对新技术的看好,站主选择了 flask

个站功能梳理

验证模块

因为并不是想简单的做个静态网页展示,想有更多的人参与,所以必须提供一个增加用户的入口,即注册/登录

  • 登录: 通过用户名或者手邮箱登录
  • 注册: 填写用户名和邮箱进行注册(不使用手机号是因为,发送验证短信需要小钱钱:joy:,而邮箱每天有一定数量的免费邮件),用户角色分三种:普通用户、有写作权限的用户以及管理员
  • 忘记密码: 用户忘记密码后,通过注册邮箱重置密码

主模块

主模块是整个个站的入口,同时负责跳转至其他模块

  • 文章展示: 根据指定规则(如发布时间倒序)来展示文章列表,支持分页
  • 侧边栏展示: 如文章分类、文章标签等
  • 关于: 关于站主和个站的描述,并且支持编辑(非静态)

文章模块

  • 文章详情展示: 展示文章内容
  • 文章评论: 提供用户评论,支持二级评论,需登录用户才可评论(很多个站都支持游客评论,但是考虑到新站没有流量,并且防止游客随意填写评论内容,初期开放游客评论)
  • 文章点赞: 用户点赞的文章,可以在个人中心中查看
  • 文章编辑: 支持文章在线创建和编辑(使用markdown)

个人中心模块

因为只是个个人博客网站,和用户交互不会太多,个站的最主要目的是记录和分享文章,重点在于文章编辑和展示,个人中心中简单设计即可。

  • 设置:用户可在此页编辑个人信息,如头像、用户名等
  • 我的私密文章: 用户在创建文章时,如果文章还处于草稿状态或者不方便对外公开,可选择私密保存,不对外公开,在此页可查询用户自己的私密文章
  • 收到的赞: 作者可在此处查看自己被点赞的文章
  • 收到的评论: 作者可在此处查看自己收到评论
  • 你的赞: 作者可在此处查看自己点赞的文章
  • 你的评论: 作者可在此处查看自己评论的文章

使用 Flask 的开发个站的感受

尽管在开发之前,已经做了一些调研,但是在实际开发中,还是遇到了许多问题。当然,这肯定是必然的,遇到问题能解决即可。但是这其中最大的问题是 flask 相关扩展的文档问题。

flask 相关扩展的文档碎片化太严重(之前只关注了 flask 本身的文档,其扩展未关注),flask 本身只是提供了一个服务器功能,类似于发送邮件使用的 flask-mail 扩展等都需要自己额外集成。先不说这些扩展的质量如何,就这些扩展的使用文档有的也不是很全,对于站主这种新手来说,使用时仍然有疑问。

开发整个搏站,从疫情延迟复工开始,到复工后正式上班,靠着每天下班后抽出点时间编写,总计一个月多点时间,算是比较拖沓的了。目前站主正在使用 django 重构本站项目。因为有之前 flask 的开发经验在,所以转 django 开发可以说比一开始从零开始时要容易很多,里面很多设计理念也都很相似。并且 django 因为高度集成的原因,各种规范和架构都已经规定好(站主本人在入手新技术时,最想看的就是规范),对于新手来说应该比较友好!

附上两张站主的Flask项目结构图(新手所作,如有不妥之处,欢迎指正)

目录结构1.jpg

目录结构2.jpg

小建议

如果有新人也想使用 flask 或者 django 试水搏站,并且有时间的话,个人建议可以先从 flask 开始,后使用 django 重构。因为如果直接上 django,作为新手,也许会对里面的东西产生很多疑惑。就如同搭积木,如果直接给你一个搭好的模型,再拆开后(逆向过程),让你指出每块积木的作用,你可能会有疑惑。但是让你亲自一步步去搭好后(正向过程),再去拆解模型,你对每块积木的都会有不错的了解。

flask 开发就像是这个正向过程(自己一步一步去集成想要的扩展,完善网站),django 开发就像是逆向过程(django已经帮你集成了许多常用的扩展,你要做的就是去学习这些扩展的使用)。走正向对新手的帮助会比逆向要大的多。当然,如果是一个没有太多时间的新手的话,就直接上 django 吧,能最大程度的保证你的项目质量。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,921评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,635评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,393评论 0 338
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,836评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,833评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,685评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,043评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,694评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 42,671评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,670评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,779评论 1 332
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,424评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,027评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,984评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,214评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,108评论 2 351
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,517评论 2 343

推荐阅读更多精彩内容

  • 本文首发于Gevin的博客 原文链接:Flask 入门指南 未经 Gevin 授权,禁止转载 1. 初识Flask...
    Gevin阅读 16,721评论 10 237
  • 今天天气比较美美哒。 因为放寒假要回家了,我朋友想和我回家之前约一波。今天就来到了这个重庆网红地_____...
    片留阅读 319评论 0 8
  • 001.如何让孩子从容面对打针 做家长的首先要不过分焦虑,然后告诉孩子打针的原因,不要过分夸大打针的痛苦也不要欺骗...
    梓毓爸阅读 253评论 8 17
  • 最近一直在思考并持续的扩充着自己的技术栈,比如每天坚持着学习前端知识,并且时常想着在移动端这条路上,自己的技术盲区...
    Originalee阅读 766评论 2 7