Skip to content

系统架构

整体架构

Blog-Vue-Flask 采用前后端分离的架构设计,主要分为以下几个部分:

  • 前端:Vue.js 单页面应用
  • 后端:Flask RESTful API
  • 数据库:MySQL
  • 缓存:Redis

前端架构

前端采用 Vue.js 框架,主要特点:

  • 组件化开发
  • Vuex 状态管理
  • Vue Router 路由管理
  • Element UI 组件库
  • Axios 网络请求

目录结构

frontend/
├── src/
│   ├── components/     # 组件
│   ├── views/         # 页面
│   ├── router/        # 路由配置
│   ├── store/         # Vuex状态管理
│   ├── api/           # API接口
│   └── assets/        # 静态资源
├── public/            # 公共资源
└── package.json       # 项目配置

后端架构

后端采用 Flask 框架,主要特点:

  • RESTful API 设计
  • JWT 认证
  • SQLAlchemy ORM
  • Flask-Migrate 数据库迁移
  • Flask-CORS 跨域支持

目录结构

backend/
├── app/
│   ├── models/        # 数据模型
│   ├── views/         # 视图函数
│   ├── schemas/       # 数据验证
│   ├── utils/         # 工具函数
│   └── extensions/    # 扩展
├── migrations/        # 数据库迁移
├── tests/            # 测试用例
└── config.py         # 配置文件

数据库设计

主要数据表设计:

  • users: 用户表
  • posts: 文章表
  • categories: 分类表
  • tags: 标签表
  • comments: 评论表

缓存设计

使用 Redis 实现缓存,主要缓存:

  • 用户会话信息
  • 热门文章
  • 文章分类
  • 标签云

部署架构

采用 Docker 容器化部署:

  • Nginx 反向代理
  • Gunicorn 应用服务器
  • MySQL 数据库
  • Redis 缓存
  • Docker Compose 编排

安全设计

  • JWT 认证
  • 密码加密存储
  • XSS 防护
  • CSRF 防护
  • 请求限流
  • SQL注入防护