游客发表

基于web的个人博客的设计与实现

发帖时间:2026-10-17 05:05:19

一个能跑起来的基于计实个人博客,核心不过三样东西:能存文章的的的设地方、能让人访问的个人页面、以及你自己看着顺眼的博客后台。我用 Flask 搭过一个,基于计实代码量不到 400 行,的的设跑在 1 核 1G 的个人轻量服务器上,日均 200 次访问毫无压力。博客

数据库选了 SQLite。基于计实别急着摇头——个人博客的的的设写入频率极低,读操作占九成以上,个人SQLite 配合 WAL 模式完全够用。博客文章表就四个字段:id、基于计实title、的的设content、个人created_at。content 直接存 Markdown 原文,渲染交给前端或后端都行。我选后端渲染,用 Python 的 markdown 库转成 HTML 再塞进模板。这样浏览器不用加载额外的 JS 解析器,首屏快那么几十毫秒。有人喜欢存 HTML,但改样式时你会哭。

路由设计暴露了博客的骨架。三条就够:/ 列出所有文章摘要,/post/<id> 显示全文,/admin 处理发布和编辑。摘要怎么来?截取 Markdown 前 200 个字符,去掉标题符号和链接语法。简单粗暴,但有效。别搞什么自动摘要算法,个人博客不需要。

后台鉴权用 session 加一个环境变量里的密码。没有用户系统,没有注册登录,就一个密码框。有人觉得太简陋,可你想想:攻击者要猜中一个 20 位随机字符串的概率有多低?比暴力破解 WordPress 后台低得多。登录后设置 session['logged_in'] = True,每个管理路由前加个装饰器检查。十行代码搞定。

模板引擎用 Jinja2。基础模板里放导航和页脚,文章列表和详情页继承它。移动端适配?一行 viewport meta 标签,加上 CSS 里 max-width: 720px; margin: 0 auto; 就够了。别引入 Bootstrap,那玩意儿压缩后还有 50KB。自己写 30 行 CSS,控制权全在你手里。字体用系统默认栈:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto。加载速度肉眼可见地快。

部署比开发更值得说道。Gunicorn 起三个 worker,Nginx 反代并处理静态文件。Let's Encrypt 的 certbot 自动续期证书。Systemd 管进程,开机自启。整个部署脚本我写了 15 行 bash,重装系统后 3 分钟恢复博客。数据库文件每天凌晨 3 点用 cron 复制到另一块磁盘,保留最近 7 天。没上云存储,因为个人博客的数据量不值得那份额外复杂度。

有个细节:文章发布时自动生成 slug。用标题的拼音加日期,比如 /post/2025-03-21-wei-bo-ke-she-ji。比纯数字 id 对 SEO 友好,又不用引入额外的库。中文标题转拼音?装个 pypinyin,两行代码的事。但如果你懒得弄,直接用 id 也没人拦着。搜索引擎现在聪明得很。

最后说个反直觉的观察:博客的访问量跟技术栈关系不大。我见过用 Hugo 生成的静态站半年没更新,也见过跑在树莓派上的 Flask 博客每周三篇原创。关键是你写不写。工具只要不拖后腿就行——启动快、发布顺、备份稳,这三条满足后,剩下的精力全该花在内容上。我的博客首页底部有一行小字:“Powered by Flask & 一杯美式”。这比任何技术徽章都真实。

    热门排行

    友情链接