Python Flask - Hexo Blog Admin 博客后台管理
# 一。项目介绍
Hexo Blog Admin 基于 Python3 编写的 Hexo 博客后台管理系统。由于本人不善于前端 UI 特效编写,所以博客前端采用 Hexo 主题模版,还有一个原因是 Hexo 的 Admin 版本效果不是很好,故使用 Python Flask 框架开发出一套可供 Hexo 主题和读取 Markdown 文件的博客后台管理系统;
# 二。项目结构
Python 项目结构并非如此,由于本人比较喜欢 Java 项目结构,故此项目结构参考的 Java 项目,但 Python 不建议层次结构太深,所以最终简化为以下结构;
hexo-blog-admin # Hexo Blog Admin
- core # 核心代码
-- constant # 常量
-- controller # 控制器
-- exception # 自定义异常
-- forms # Form表单实体
-- handler # 业务处理层
-- logger # 日志
-- models # 实体
-- params # 参数
-- rbac # RBAC访问权限控制
-- utils # 工具类
__init__.py # 初始化文件
app.py # APP应用
-- resources # 项目资源目录
-- db_repository # 数据库生成资源目录[已生成,可忽略]
-- docs # 文档目录
-- source # Markdown文件目录[仅供测试]
-- static # 静态文件目录(js/css/images...)
-- templates # HTML文件目录
app.db # sqlite数据库
application.yml # 项目配置文件
databases.yml # 数据库配置文件
logging.conf # 日志配置文件
- bin # 执行脚本[可忽略]
- logs # 日志目录
hexo-blog.sh # 生成静态页面脚本
hexo-blog-admin.ini # uwsgi配置文件(web服务器)
requirements.txt # 批量安装关联插件
run.py # 应用启动
setup.py # 应用打包[可忽略]
README.md # 项目文档
# 三。系统架构
系统应用基于 Python Flask 框架开发,系统访问权限控制使用的 RBAC 实现,国际化由于时间关系所以也没有实现,博客基本需求是完全可以满足的。
文件存储服务没有使用第三方服务,而是自己搭建了 FastDFS 文件服务系统,因为 Python 调用 FastDFS 存在各种问题,从而采用的 Java 编写的 API 服务(TODO: 后续也会继续优化支持多种方式)。
前端采用的 Markdown 插件,编辑完成后会生成 MD 文件,MongoDB 仅仅存储文章的基本信息和路径,不会去存储文章内容;同时也支持 MongoDB 数据恢复,故 MongoDB 服务挂了造成数据丢失也不必担心;
Security 系统管理数据存储在 Sqlite DB 中,之所以采用 Sqlite 是因为这部分数据量不是很大,仅仅存储用户、菜单、资源、权限等数据;
后台添加用户密码推送至邮箱,其他细节部分,大家可以自己参考源码;
# 四。注意事项
- 安装项目集成插件
1 | pip3 install flask |
-
解决安装 pycryptodome 加密插件引入的问题,\Lib\site-packages\crypto (crypto 默认是小写,改成大写即可 Crypto)
-
[完善] 批量安装
1 | pip3 install -r requirements.txt |
- 项目启动命令
1 | 启动项目 |
# 五。相关文章
# 『 Hexo 相关资料』
# 『 Centos 7 快速教程 』
- Centos 7 静态 IP 设置
- Linux 增加 bash 脚本为 service,开机自启服务脚本配置
- Centos7 安装 Docker CE
- Centos7 安装 JDK1.8
- Centos7 安装较高版本 Ruby2.2+(RVM 安装)
- Centos7 开启 Docker 远程 API 访问端口
# 『 Docker 快速教程 』
# 『 Redis 快速教程 』
# 『 FastDFS 快速教程 』
# 六。源码地址
本项目开源,仅供学习参考与个人使用!如有更好的方案和 idea,欢迎互相交流!如您觉得该项目对您有所帮助,欢迎点击右上方的 Star 标记,给予支持!!!谢谢~~ 如果有更好的 idea 也欢迎互相交流,联系方式博客菜单 about
Hexo Blog Admin 源码地址
Java File Server 源码地址
# 七。效果预览
-
时间轴 - 首页
-
权限管理 - 菜单
-
权限管理 - 用户
-
文章发布
-
禁止访问