Actix Web & SQLx 搭建 Web 后端服务

2023-11-03

本文代码 https://github.com/tothis/rust-record/tree/main/test/actix-web

已集成功能

  • log4rs 集成
  • SQLx 集成
  • Actix Web CRUD

Cargo.toml

[package]
name = "actix-web-record"
version = "0.1.0"
authors = ["Li Lei <this.lilei@gmail.com>"]
edition = "2021"

[dependencies]
serde = "1.0"
actix-web = "4.0"
dotenv = "0.15"
log = "0.4"
log4rs = "1.0"

[dependencies.sqlx]
version = "0.5"
features = [
    "postgres",
    "runtime-actix-rustls"
]

数据库结构

-- ----------------------------
-- Sequence structure for user_id_seq
-- ----------------------------
DROP SEQUENCE IF EXISTS "public"."user_id_seq";
CREATE SEQUENCE "public"."user_id_seq"
INCREMENT 1
MINVALUE  1
MAXVALUE 9223372036854775807
START 1
CACHE 1;
ALTER SEQUENCE "public"."user_id_seq" OWNER TO "postgres";

-- ----------------------------
-- Table structure for user
-- ----------------------------
DROP TABLE IF EXISTS "public"."user";
CREATE TABLE "public"."user" (
  "id" int8 NOT NULL GENERATED BY DEFAULT AS IDENTITY (
INCREMENT 1
MINVALUE  1
MAXVALUE 9223372036854775807
START 1
CACHE 1
),
  "created_at" timestamp(6),
  "updated_at" timestamp(6),
  "deleted_at" timestamp(6),
  "name" varchar(255) COLLATE "pg_catalog"."default"
)
;
ALTER TABLE "public"."user" OWNER TO "postgres";

-- ----------------------------
-- Alter sequences owned by
-- ----------------------------
ALTER SEQUENCE "public"."user_id_seq"
OWNED BY "public"."user"."id";
SELECT setval('"public"."user_id_seq"', 1, false);

-- ----------------------------
-- Primary Key structure for table user
-- ----------------------------
ALTER TABLE "public"."user" ADD CONSTRAINT "user_pkey" PRIMARY KEY ("id");

.env

DATABASE_URL="postgres://postgres:123456@127.0.0.1/actix_web_record"

config/log4rs.yaml

refresh_rate: 30 seconds
appenders:
  stdout:
    kind: console
    encoder:
      pattern: "{d(%F %H:%M:%S%.f)} - {m}{n}"
  main:
    kind: file
    path: "test/actix-web/log/main.log"
    encoder:
      
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Actix Web & SQLx 搭建 Web 后端服务 的相关文章

随机推荐

  • nb传输协议和服务器的连接,NB-iot网络架构介绍_NB-iot的数据传输方式

    一 NB iot网络架构 整个NB IoT网络架构分为五个部分 终端 无线网络 核心网络 EPC IoT支持平台和应用服务器 二 NB iot网络架构简介 1 终端 主要通过空中接口连接到基站 终端方面主要包括工业终端和NB IoT模块 工
  • Node.js程序如何访问MySQL数据库呢?Sequelize操作MySQL数据库详解

    使用Sequelize 访问MySQL 当我们安装好MySQL后 Node js程序如何访问MySQL数据库呢 访问MySQL数据库只有一种方法 就是通过网络发送SQL命令 然后 MySQL服务器执行后返回结果 我们可以在命令行窗口输入my
  • 以太坊未来的 POS 协议:Casper

    以太坊未来的 POS 协议 大家好 我是Vlad 2014年9月份我开始了研究和设计以太坊POS proof of stake 权益证明 架构的工作 目前Vitalik和我对于Serenity阶段的POS协议应该长什么样已经有了许多共识 只
  • 证券市场的法律法规体系

    前言 作为金融公司的一员 这个证券从业资格证还是要拿到手 虽然我是技术人员 但这方面的知识还是要加强 要懂法 哈哈 已经报名了6月24号的考试 还有50天左右的时间 从今天起就记录下 我自己的学习笔记吧 Come on 证券市场法律法规体系
  • iis 配置多域名,多https

    当一个https的请求到达IIS服务器时 https请求为加密状态 需要拿到相应的服务器证书解密请求 由于每个站点对应的证书不同 服务器需要通过请求中不同的主机头来判断需要用哪个证书解密 然而主机头作为请求的一部分也被加密 最终IIS只好使
  • DAS、NAS、SAN、iSCSI 存储方案概述

    目前服务器所使用的专业存储方案有DAS NAS SAN iSCSI几种 存储根据服务器类型可以分为 封闭系统的存储和开放系统的存储 1 封闭系统主要指大型机 2 开放系统指基于包括Windows UNIX Linux等操作系统的服务器 开放
  • 鱼眼图像的全景矫正

    1 球面透视投影与展开 鱼眼镜头的成像通常首先要进行球面透视投影 即将三维空间中的点沿着经过镜头光学中心的直线投影到以光心为原点的单位半径球体 内表面 上 从而球面上的每一个点 可通过相应的经纬度来表示 如图 1 所示 以镜头光学中心为原点
  • vue2.x自定义v-loading指令

    vue3 x自定义v loading思路类似 directive js import Loading from loading import Vue from vue const loadingDirective inserted el b
  • 排查Javascript内存泄漏案例(一)

    Chrome DevTools里的Performance面板和Memory面板可以用来定位内存问题 如何判断应用发生内存泄漏 为了证明螃蟹的听觉在腿上 一个专家捉了只螃蟹并冲它大吼 螃蟹很快就跑了 然后捉回来再冲它吼 螃蟹又跑了 最后专家把
  • Linux 创建用户并限制其访问目录,设置密码为永不过期

    创建用户及访问目录 useradd sou d tmp sou M 设置用户密码 passwd sou Tip 输入命令后 会提示输入密码 修改密码为永不过期 chage M 99999 sou 将访问目录和所有子目录权限全部赋予用户 ch
  • 十二、Linux系统中的软件管理

    十二 Linux 系统中的软件管理 rpm dnf命令 软件仓库的搭建 12 1 Linux中软件包的类型 1 DEB UBlinux DEBlinux 2 RPM redhat centOS fadora 3 bz2 gz xz 1 需要
  • Linux root用户使用普通用户的conda环境的方法

    1 使用root用户登录 2 假设普通用户为new user conda环境安装在new user用户目录下 则可以使用如下命令激活conda环境 source home new user miniconda3 bin activate 激
  • 联想小新I1000 win10电脑系统安装教程

    最近因为之前电脑太卡了 想要给自己的联想小新重装系统 发现网上说采用以下方式安装的win10系统会更干净一些 过程做以下记录 联想小新 win10电脑系统安装教程 1 制作系统安装盘 1 1 准备U盘以及一台用来制作安装盘的电脑 1 2 下
  • 通过遍历,找到链表中最后一个结点

    通过遍历 找到链表中最后一个结点 首先创建一个链表 然后再找到链表的最后一个结点 代码实例 class Node public int val public Node next public Node int val this val va
  • ffmpeg将连续的h264分割为单帧

    http ffmpeg org doxygen trunk decode video 8c example html FFmpeg Main Page Related Pages Modules Namespaces Data Struct
  • ELK高级搜索四之Mapping映射

    目录 Mapping映射入门 什么是mapping映射 内置映射类型 keyword 使用 创建Mapping 新增数据 查询测试 属性介绍 store使用 创建索引 动态映射dynamic mapping 手动创建映射 查询映射 映射测试
  • “我永远都无法理解人类!” OpenAI “杀”死了那个成功模拟已故未婚妻的 GPT-3 机器人

    逝者已矣 生者如斯 意为死去的人已离我们而去 活着的人要好好生活 可人非圣贤 明知不可拘泥于过去 却总会在深夜不禁回想起过往的美好 并在心里说一句 我真的好想你 但已故之人如何能听到 只能天一亮 便压下心中思念 再次开启新的一天 如此日复一
  • MySQL存储函数和存储过程的区别

    存储过程与存储函数的区别 1 存储函数和存储过程统称为存储例程 store routine 存储函数的限制比较多 例如不能用临时表 只能用表变量 而存储过程的限制较少 存储过程的实现功能要复杂些 而函数的实现功能针对性比较强 2 返回值不同
  • 二维码原理、制作和识别

    参考 二维码 QR code 基本结构及生成原理 附标准下载 二维码到底是怎么被识别的 黑白小方块又是怎么储存数据的 一 矩阵式二维条码QR 矩阵式二维条码 又称棋盘式二维条码 QR码的设计理念之一就是尽可能地容错和自适应 它是在一个矩形空
  • Actix Web & SQLx 搭建 Web 后端服务

    本文代码 https github com tothis rust record tree main test actix web 已集成功能 log4rs 集成 SQLx 集成 Actix Web CRUD Cargo toml pack