基于Flask,MySQL和MongoDB实现的在线阅读系统

发布于:2025-06-15 ⋅ 阅读:(15) ⋅ 点赞:(0)

在线阅读系统

管理员后台 - 首页

管理员后台 - 主页

管理员后台 - 书籍编辑预览

管理员后台 - 广告管理

管理员后台 - 大屏看板

用户端 - 书籍列表界面

用户端 - 阅读界面

用户端 - 个性化设置

用户端 - 书架与阅读记录

项目简介

在线阅读系统是一个功能完善的数字化阅读平台,采用前后端分离架构开发,为读者和管理员提供全方位的服务。

核心特点:

  • 双角色系统:管理员与普通用户各具专属功能界面
  • 多格式支持:专为EPUB电子书优化,提供流畅阅读体验
  • 商业化功能:集成支付系统与广告变现能力
  • 数据驱动:配备可视化分析看板辅助运营决策
  • 跨平台兼容:适配移动端与PC端各种设备

技术亮点:

  • 混合数据库架构:MySQL处理结构化数据 + MongoDB存储书籍内容
  • 现代化技术栈:Flask轻量级后端 + UniApp跨平台前端
  • 生产级部署:Docker容器化 + Nginx反向代理
  • 完整支付集成:支付宝沙箱环境支付流程

快速启动指南

后端服务部署

开发模式运行:
  1. 克隆项目仓库

    cd online-reading-system/backend-python
    
  2. 安装依赖

    pip install -r requirements.txt
    
  3. 配置环境

    • 修改config.py中的数据库连接参数
    • 配置payparms.py中的支付参数
  4. 启动服务

    flask run --host=0.0.0.0 --port=5000
    
Docker生产部署:
docker build -t online-reading-system-backend .

docker run -d \
  -p 5000:5000 \
  -e SERVER_URL="http://your-domain.com/api" \
  -e MONGO_URL="mongodb://host.docker.internal:27017/reading" \
  -e SQLALCHEMY_DATABASE_URI="mysql+pymysql://user:password@host.docker.internal:3306/dbname" \
  -e REDIS_URL="redis://host.docker.internal:6379/0" \
  --name reading-backend \
  reading-server

前端服务部署

  1. 管理员端

    cd admin-end
    npm install
    npm run build
    
  2. 用户端

    cd user-end
    npm install
    npm run build
    
  3. 通过Nginx配置反向代理,建议配置:

    location /api {
      proxy_pass http://backend:5000;
      proxy_set_header Host $host;
    }
    
    location /admin {
      alias /path/to/admin/dist;
      try_files $uri $uri/ /admin/index.html;
    }
    
    location / {
      alias /path/to/user/dist;
      try_files $uri $uri/ /index.html;
    }
    

数据库准备

  1. MySQL:

    CREATE DATABASE reading CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
    
  2. MongoDB:

    use reading
    db.createCollection("book_contents")
    

注意事项

  1. 首次运行需通过batchhandelepub.py导入EPUB书籍
  2. 支付功能需配置支付宝沙箱账号
  3. 生产环境务必修改默认密钥和密码
  4. 建议使用HTTPS确保数据传输安全

系统现已支持完整的电子书阅读、用户管理、付费阅读和数据分析功能,可根据实际需求进行二次开发或功能扩展。