总体架构

前端:微信小程序(登录、上传、浏览、收藏、评论、分享、离线缓存)
后端:Flask + Flask-RESTful 或 Flask-Smorest(API),PostgreSQL(主数据),Redis(缓存、限流、Celery broker)
对象存储:腾讯 COS / 阿里 OSS / S3(推荐前端直传,服务端下发临时凭证或签名)
异步任务:Celery + Redis(缩略图、OCR、索引)
搜索:Postgres ts_vector 起步,Meilisearch/Elasticsearch 可选
鉴权:微信 code -> openid -> 本端创建/查找用户,返回 JWT(flask_jwt_extended)

核心功能模块与数据模型(简化)

用户(微信 openid 关联)
文档资源(元信息、文件 URL、类型、标签、权限)
评论、收藏、下载/分享记录
权限/库(公共/私有/小组)

API 设计要点

RESTful 资源:/api/docs/, /api/docs/{id}/, /api/docs/{id}/comments/, /api/favorites/, /api/users/me
支持分页、筛选(按标签、类型、owner)、排序(最新/热度)
文件处理任务异步:上传后入队列:生成缩略图、提取文本(OCR/Tika)、建立全文索引
权限:公开/私人/指定用户组;API 层校验 owner 和 ACL

搜索策略

起步:使用 PostgreSQL 的 ts_vector(内置)做全文搜索
进阶:Meilisearch(简单、速度快)或 Elasticsearch(功能强)

性能与安全

使用对象存储避免数据库存二进制
对上传文件做类型和大小校验,必要时做病毒扫描
对高频接口做限流(DRF throttle + Redis)
HTTPS、CORS、CSRF(小程序一般使用 token header)

部署与运维(简要)

本地开发:python manage.py runserver_plus 或 docker-compose up
生产:Docker + Gunicorn + Nginx;配置域名并在微信后台添加合法请求域名与下载域名
自动化:CI(lint -> tests -> build image -> deploy)

发与测试建议

先实现最小可用产品(上传/浏览/分享/收藏)
编写单元测试与 API 测试(pytest + DRF)
使用 Postman / Insomnia 或 微信开发者工具调试小程序端

可选增强功能

文档预览(PDF 转图片/HTML)
OCR 提取全文并建立搜索索引
管理后台(Django admin / 自建后台)
分享链路统计、访问控制与过期链接

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
cd /Users/shgny/Project/SharedLibrary/backend

# 1) 创建并激活虚拟环境
python3 -m venv venv
source venv/bin/activate

# 2) 安装依赖
pip install -r requirements.txt

# 3) 创建 uploads 目录(可选)
mkdir -p uploads

# 4) 初始化数据库迁移并创建 sqlite 数据库
export FLASK_APP=run.py
flask db init
flask db migrate -m "init"
flask db upgrade

# 5) 运行应用
python run.py