立项背景和目标
随着个人内容创作、轻量协作和私密分享需求增加,单机日志工具已经难以满足“多人共同使用、按人隔离、按内容控制公开范围”的场景,因此立项开发“浮光手记”。项目目标是打造一个简洁灵动、上手成本低的轻量网站,让用户和朋友都能注册登录、编写日志、上传下载文件,并通过公开主页和公共广场进行有限分享,同时保留私密内容管理能力。
软件功能、核心功能模块介绍
系统主要包含账号认证、个人控制台、日志管理、文件管理、公共广场、个人公开主页和文档导出模块。账号认证负责注册、登录与会话维持;日志管理支持新建、删除、公开/私密切换、Word 导出与打印为 PDF;文件管理支持上传、下载、删除和可见性切换;公共广场聚合全站公开内容;个人公开主页用于向朋友展示个人公开日志和公开文件。整体强调轻量、可分享、可沉淀。
业务流程、功能路径描述
用户进入首页后,可选择注册或登录;注册成功后进入个人控制台,在控制台中可以创建日志、选择标签和心情、设置是否公开,也可以上传文件并设置公开范围。若内容设为公开,会自动出现在公共广场,并同步展示在个人公开主页中;若设为私密,则仅本人登录后可见。用户可继续在个人空间里删除内容、调整公开状态、导出日志文档,朋友则可以通过公共广场或个人主页链接查看可公开访问的内容。
整体架构和设计思路,不同模块使用的技术栈
项目采用轻量 B/S 架构,后端使用 Python 标准库实现 WSGI 服务,数据库采用 SQLite,前端使用服务端渲染 HTML + CSS 的方式输出页面,不依赖 Node 构建链。认证模块通过 Cookie + Session 表维护登录态;日志与文件模块通过 SQLite 表和本地上传目录配合实现;公共广场与个人主页通过公开字段进行数据过滤;导出模块通过 HTML 生成 Word 文档和打印页实现 PDF 留存。这样的设计依赖少、部署简单,适合小型私人网站和原型验证。
我的负责模块和结果
我负责了项目从静态原型到多人网站版本的整体改造,包括账号注册登录、会话管理、日志 CRUD 的核心路径、文件上传下载、公开/私密权限控制、公共广场与个人公开主页、Word/PDF 导出,以及本地运行环境落地。结果上,项目已可在本机成功启动并返回 200 状态,已完成 1 套后端服务、2 类核心内容模型(日志/文件)、6 个以上关键功能页面或路径,并补齐了启动脚本、停止脚本和运行说明,形成了可直接演示的可运行版本。
我遇到的难点、坑和解决方案
项目过程中主要遇到了两个典型问题。第一是 cgi 模块在 Python 3.12 已弃用、在 Python 3.13 中面临移除风险,继续使用会带来兼容性隐患,因此我移除了 cgi.FieldStorage 依赖,改为自定义 multipart/form-data 解析逻辑,避免后续升级时服务不可用。第二是 WSGI 响应头只能安全传输 Latin-1,原先把中文提示直接放进 Location、把中文文件名直接放进 Content-Disposition,导致注册跳转时报 UnicodeEncodeError。我通过对跳转提示进行 URL 编码、对下载文件名同时输出 ASCII 回退名和 filename* UTF-8 编码参数,彻底修复了该问题。