一个星期,网站重构计划
内容提要
作者计划重构自己的网站,整合功能到一个域名,使用Flask+SQLAlchemy+MySQL作为后端框架,解决安全问题,托管到京东云,2月初上线。已实现评论审核、又拍云存储图片、博客数据结构等功能,未来打算新增邮箱订阅和个人注册功能,希望成为功能全面、内容丰富的前后端分离网站。
延伸解读
技术选型与开发效率
作者选择Flask+SQLAlchemy+MySQL作为后端框架,看重其语法简单易上手。借助PyCharm的AI自动补全和通义灵码生成测试数据,显著减少了工作量。SQLAlchemy定义数据模型避免了繁琐的SQL语句,而Alembic工具则解决了数据库迁移问题,能自动检测字段更改并执行alter语句,确保已有数据不丢失。这种组合适合快速开发迭代。
安全防护的多层设计
后台安全校验采用三层措施:站点初始化密码校验、Referer验证和Token验证。Referer验证通过自定义装饰器实现,阻止非本站域名访问,但作者也指出Referer可被伪造,因此增加Token验证作为最严格防护。Token使用HS256算法加密,仅管理员可获取,且具有有效期,主要用于后台管理。未来还计划在评论系统中加入短时效Token,以应对垃圾评论。
功能取舍与内容重构
新站点将保留评论审核、又拍云存储图片、博客数据结构等核心功能,但去除博客的众多页面、API管理、小工具和云盘共享。文章将按类别整合,技术分享和社会思考成为两大分类,低质文章会翻新或删除。友链功能重构为带有个人主观倾向的排名,并引入爬虫定期检测链接有效性。新增邮箱订阅和个人注册功能,后者简化登录流程但提供Token验证。
上线计划与站点定位
新站点将托管到京东云,imqi1.com域名正在备案,预计2月初上线,但可能不是最终版。qi1.zone域名可能不再运行,仅留作备份。作者希望新网站成为功能全面、内容丰富的前后端分离综合性站点,包含个人主页、记事、技术、笔记等,内容更聚合、分类更明显。这不仅是技术实践,也是作者从羡慕他人网页到有能力实现自己网站的个人成长见证。
Q&A
作者重构网站的主要目标是什么?
将现有所有功能整合到一个域名(imqi1.com)中,实现一个后台管理全部站点,并打造一个功能全面、内容丰富的前后端分离网站。
新网站的后端技术栈是什么?为什么选择这些技术?
后端采用Flask+SQLAlchemy+MySQL。因为这些技术语法简单,不需要复杂知识,结合AI工具和官方文档能大大提高开发效率。
作者如何解决数据库模型变更时的数据迁移问题?
使用Alembic工具进行数据库迁移。Alembic能检测模型类的字段更改并执行数据库层面的alter语句,确保已有数据不丢失。
新网站目前实现了哪些安全措施?
实现了站点初始化密码校验、Referer验证和Token验证。Token使用HS256算法加密,只有管理员可获取,用于后台管理的高级别安全验证。
新网站计划新增哪些功能?
计划新增邮箱订阅功能(定期推送推荐内容)和个人注册功能(简化评论流程,提供Token验证增强安全性)。
新网站上线时间和托管平台是什么?
新网站将托管到京东云,imqi1.com正在备案中,预计2月初左右上线,但上线时可能不是最终版。
友链功能将如何重构?
友链将带有强烈的个人主观倾向,排名意图明显,优秀友链会放在首页并加独一无二的标签。还会使用爬虫定期检测友链状态,并设置专用User-Agent。
原有网站的哪些功能会被去除?
去除博客的众多页面(如旅行、音乐、照片等)、API管理(转为私人API加鉴权)、小工具(可能留在qi1.zone)和云盘(不再共享)。