axum

axum中的各种响应

本章主要讨论 axum 的响应。axum 已经实现了多种响应,比如纯文本、HTML、JSON 及 自定义响应头(response header)。除了这些 axum 内置的响应之外,我们还将讨论如何将自己定义的结构体,作为响应返回给客户端。 axum 的响应 axum 有句话说的是: Anythin ......
axum

在axum中获取请求数据

在日常开发中,我们需要与用户进行交互,从各种渠道获取用户输入,包括但不限于:表单、URL 参数、URL Path 以及 JSON 等。axum 为我们提供了这些获取用户输入的支持。 获取 Path 参数 Path 参数,又称为“路径参数”,它既可以实现参数的传递,又对 SEO 友好。 什么是 Pat ......
数据 axum

axum 操作 redis

通过 redis-rs 这个 crate,可以很方便的操作 redis。它提供了同步和异步两种连接,由于我们要集成到 axum 中,所以这里使用异步连接。本章将展示如何获取 redis 异步连接、如何将字符串保存到 redis、如何获取到保存在 redis 里的字符串以及如何通过 redis 保存和 ......
redis axum

axum处理cookie

Cookie 是通过 HTTP Header 进行传递的。由某个响应头进行设置,然后其它请求头就可以获取到了。本章将通过模拟用户中心来用 axum 操作 HTTP Header 演示 Cookie 的读写操作。 本章示例将实现以下路由: 路由说明 GET / 用户中心首页。如果用户未登录,显示提示信 ......
cookie axum

axum处理静态文件

和其它 Web 框架一样,axum 也会对所有请求进行处理。对于 CSS、JS 及图片等静态文件,并不需要 axum 的 handler 进行处理,而是只需要简单的把它们的内容进行返回即可。axum 提供了处理静态文件的中间件。 首先,我们创建一个名为 static 的目录,并在其中创建一个 axu ......
静态 文件 axum

axum的状态共享

状态共享是指,在整个应用或不同路由之间,共享一份数据。axum 提供了方便的状态共享机制,但可能也会踩坑。本章将带你学习如何在 axum web 应用中共享状态。 如何进行状态共享 axum 使用 Layer 来实现状态共享。 定义路由时,使用 layer() 加入要共享的数据,在需要获取该共享数据 ......
状态 axum

axum 操作 Postgres 数据库

PostgreSQL 是一款天然支持异步操作的高性能开源关系型数据库。本章将讨论如何在 axum 中使用 PostgreSQL。包括:数据的增加、修改、删除、查找以及开始事务保证业务的原子性。 如果你对 PostgreSQL 不是很了解,可以通过PostgreSQL 轻松学网站进行学习。 Eleph ......
Postgres 数据库 数据 axum

axum错误处理

本章主要讨论 axum 的错误处理。 最近TG 群很多朋友讨论到,在接收 JSON 数据时,如何对用户错误提交的数据回复自定义的信息。在axum 官方示例中,有一个通过自定义 extractor 的示例,同时axum 文档里有一篇专门介绍的错误处理的文档。 本章将简化官方的 extractor 以及 ......
错误 axum

axum 上传文件

文件上传是 Web 开发中常见的功能,本章将演示如何在 axum 实现文件上传。 启用 feature 要让 axum 支持文件上传,需要在 Cargo.toml 中显式的启用名为multipart的 feature: axum = {version = "0.3", features = ["mu ......
文件 axum

axum 集成 JWT

Json web token(JWT)是为了网络应用环境间传递声明而执行的一种基于 JSON 的开发标准(RFC 7519),该 token 被设计为紧凑且安全的,特别适用于分布式站点的单点登陆(SSO)场景。JWT 的声明一般被用来在身份提供者和服务提供者间传递被认证的用户身份信息,以便于从资源服 ......
axum JWT

axum 实现 Session

由于 HTTP 是无状态的,所以我们可以通过cookie来维护状态。但 cookie 是直接保存到客户端,所以对于敏感数据,不能直接保存到 cookie。我们可以把敏感数据保存到服务端,然后把对应的 ID 保存到 cookie,这就是 Session。本章我们将使用 Cookie 和 Redis 实 ......
Session axum

axum 中使用模板引擎

利用模板引擎,我们不需要再把 HTML 代码写在 Rust 代码中了,而是将其独立保存为*.html文件。既方便维护,也有利用开发。 创建模板文件 首先,我们在项目根目录创建一个templates目录,并在这个目录创建一个index.html文件,内容如下: <!DOCTYPE html> <htm ......
模板 引擎 axum

配置文件:让axum app可配置

将数据库连接信息、redis 连接信息以及 Web 应用监听地址等信息通过配置文件进行单独管理是一个比较好的开发实践。这样就无须在更改配置的时候重新编译整个项目,同时也可以针对不同环境使用不同的配置文件。 本章以 PostgreSQL 和 Redis 进行演示如何使用配置文件。首先看一下新接触的两个 ......
文件 axum app

axum 集成hcaptcha验证码进行人机验证

在机器人采集、恶意攻击的今天,人机验证筑起了一道保护网。从之前的图片验证码,到 Google 提供的 reCaptcha,人机验证经历了一段漫长的演进过程。 为什么使用 hCaptcha? Google 的 reCaptche 在国内无法访问,但 hCaptcha 可以 在开发层面 hCaptcha ......
人机 hcaptcha axum

使用axum构建博客系统 - 网站首页

后台管理完成后,我们开始进入前台功能的开发。本章我们将完成博客首页的开发。 母模板 templates/frontend/base.html 是时候对前台母模板进行数据填充和块的定义了: <!DOCTYPE html> <html lang="zh-CN"> <head> <meta charset ......
网站首页 系统 博客 网站 axum

使用axum构建博客系统 - 分类文章列表

本章将实现博客的分类文章列表功能。 模板 请参见代码仓库的templates/frontend/topic_list.html 视图类 请参见代码仓库的src/view/frontend/topic.rs handler // src/handler/frontend/topic.rs pub as ......
系统 文章 博客 axum

使用axum构建博客系统 - 后台管理菜单及首页模板

目前,后台管理功能基本完成,但还有两个工作没做:清理后台管理的导航菜单以及后台管理首页的模板。 后台管理菜单 <!-- templates/backend/base.html --> <!-- ... --> <div class="container-fluid"> <div class="row ......
后台 菜单 模板 系统 博客

使用axum构建博客系统 - 文章详情

本章将实现博客文章的详情显示功能。 数据库视图 CREATE VIEW v_topic_cat_detail AS SELECT t.id, title, html, hit, dateline,category_id,t.is_del, c.name AS category_name FROM t ......
详情 系统 文章 博客 axum

使用axum构建博客系统 - 存档文章列表

本章将实现存档文章列表功能。注意,本章涉及较多PostgreSQL知识,如果你对相关知识不熟悉,可以先让代码跑起来,再去了解相关知识。 模板 本功能模板文件是templates/frontend/topic_arch.html。 视图类 本功能视图类定义在src/view/frontend/topi ......
系统 文章 博客 axum

使用axum构建博客系统 - 模板

我们的博客分为“前台”和“后台”两部分。前台用于展示博客内容,后台用于管理博客。本章我们将编写前台和后台的基础模板以及对应的路由。 目录结构 前台模板位于 templates/frontend,后台模板位于templates/backend。 前台 我们的前台模板基于 Bootstrap的Blog  ......
模板 系统 博客 axum

使用axum构建博客系统 - 应用骨架

本章我们将开始搭建本应用的骨架,包括:依赖、Result 和 AppError 以及通用数据库操作等。 依赖 # Cargo.toml [dependencies] tokio = { version="1", features = ["full"] } serde = { version="1", ......
骨架 系统 博客 axum

使用axum构建博客系统 - 分类管理

本章开始,我们将对博客的具体业务进行实现。首先,我们实现博客分类的管理功能。 数据库结构 CREATE TABLE categories ( id SERIAL PRIMARY KEY, name VARCHAR(100) NOT NULL, is_del BOOLEAN NOT NULL DEFA ......
系统 博客 axum

使用axum构建博客系统 - 文章管理

本章我们将实现博客的文章管理功能。 数据库结构 CREATE TABLE topics ( id BIGSERIAL PRIMARY KEY, title VARCHAR(255) NOT NULL, category_id INT NOT NULL, summary VARCHAR(255) NO ......
系统 文章 博客 axum

使用axum构建博客系统 - 鉴权与登录

本章实现后台管理的鉴权,以及管理员的登录、注销功能。涉及的知识点有:cookie及中间件等。 数据库结构 CREATE TABLE admins ( id SERIAL PRIMARY KEY, email VARCHAR(255) NOT NULL, password VARCHAR(255) N ......
系统 博客 axum

AXUM学习

一. 网址参考 1. Rust:axum学习笔记(1) hello world 2. AXUM中文网 ......
AXUM
共25篇  :1/1页 首页上一页1下一页尾页