From 11f22ec2ce1843ebf6445aa1127129162f966834 Mon Sep 17 00:00:00 2001 From: gitee-bot Date: Thu, 24 Jul 2025 10:02:05 +0000 Subject: [PATCH] Update README.md --- README.md | 100 ++++++++++++++++++++++++++++++------------------------ 1 file changed, 56 insertions(+), 44 deletions(-) diff --git a/README.md b/README.md index 7fe5f34..e008ff7 100644 --- a/README.md +++ b/README.md @@ -1,47 +1,59 @@ -# axum-hello - -### 介绍 - -使用axum 试着创建一个web app, 通过项目学习Rust, tokio, 这是个练习的项目。 - -### 设计思想 -最小化配置的,满足博客最基本对外浏览布的功能。 让用户拿到应用直接部署,立刻使用的博客。读取Markdown文件,程序保存Markdown信息到数据,Markdown文件在访问时,被解析成html文件,浏览器渲染html。 - -### 使用的crate -后端框架:Axum -运行时:tokio -数据库:sqlx -日志:tklog -定时任务:job_scheduler -模板渲染:aksama, askama-axum -页面:html,css,js, VUE, Bootstrap, marked.umd.js -配置: config - -### 解析Markdown -在前段解析Markdown文档,使用的lib为marked.umd.js - -### 服务器端口 -端口 3000, 写入到配置文件中application.toml -### 数据库 -写入到配置文件中 - - -### 技术细节 -模板默认是放在名为templates文件夹下,此文件夹下可以有子文件夹, -使用#[template(path="./me/index.html")]绑定实体struct和模板文件。 - - -### 日志 -1. 这里是列表文本日志放在和主程序同级目录下,名字axum_hello.log。 - -### 关于release -cargo build --release 时并不会帮我们把我们需要的静态文件打包,需要我们自己再copy一份静态文件到统计目录下,比如我们的打包: -- 我们cargo build --release 执行后生成了axum-hello 执行文件 -- 我们上传这个执行文件到服务器中 -- 我们还需要把asserts文件(包含此文件夹)一同上传到执行文件的同级目录下, asserts文件夹是程序中ServeDir::new指定了该名称。 +# axum-hello -### 注意 -- 文件名建议中文,假如是英文的话,如果路径中使用反斜杠那么名字可能被转移,例如\test.md, \t 就被当作换行符。 -- 路径名为全路径名称, 要改 +## 介绍 +这是一个基于axum框架的Rust项目,主要实现了一个博客系统的基础功能。项目集成了数据库访问、文件解析、日志记录和会话管理等模块。 + +## 软件架构 +项目采用分层架构设计,主要包含: +- 配置模块:管理数据库、服务器等配置 +- 实体模块:定义业务数据结构 +- 服务层:处理业务逻辑 +- 工具模块:提供通用功能 + +## 功能特点 +- Markdown文件解析 +- 访问计数统计 +- 用户会ited +- 日志记录 +- 响应式布局 +- 支持黑暗模式 + +## 技术细节 +- 使用sqlx进行数据库操作 +- 采用axum框架构建web服务 +- 使用bootstrap 5进行前端样式设计 +- 支持文件上传和管理 +- 使用定时任务处理文章访问统计 + +## 安装说明 +1. 安装Rust工具链 +2. 安装MySQL数据库 +3. 创建数据库并执行DDL.sql脚本 +4. 修改application.toml配置文件 +5. 执行cargo build +6. 运行程序 + +## 使用说明 +- 默认运行在8080端口 +- /blogs 接口获取博客列表 +- /blog/{id} 接口获取文章详情 +- /upload 上传文章 +- /login 用户登录 + +## 许可协议 +本项目遵循MIT协议,详细信息请查看LICENSE文件。 + +## 项目维护 +- 数据库存储使用MySql +- 文件存储使用本地文件系统 +- 日志使用tracing库记录 +- 会话管理使用内存存储 + +## 注意事项 +- 需要配置application.toml中的数据库连接信息 +- 文件上传路径需要有写入权限 +- 生产环境建议使用release模式编译 +- 需要安装必要的构建工具链 +- 定时任务默认每5分钟运行一次 \ No newline at end of file -- Gitee