SQLPage 是一款基于 SQL 的网页应用构建器,只需编写SQL就能快速生成数据驱动的网页,支持多种数据库,包括SQLite、PostgreSQL、MySQL、Microsoft SQL Server和兼容数据库(如YugabyteDB、MariaDB等)。通过简单的SQL查询,可实现数据展示(文本、列表、表格、图表)、表单交互等功能,不需要传统的Web开发语言。

SQLPage 基础功能

组件化:通过SQL语句中的component字段指定展示形式,支持list(列表)、chart(图表)、form(表单)、tab(选项卡)、card(卡片)等多种组件,例如:

SELECT 'list' AS component, 'Popular websites' AS title;
SELECT name AS title, url AS link FROM website;

动态交互:通过URL参数(如$tab$todo_id)传递用户输入,实现数据过滤、表单提交等交互逻辑,例如:

SELECT * FROM todos WHERE id = $todo_id; -- 根据URL参数筛选数据
INSERT INTO user SELECT $first_name, $last_name, $birth_date; -- 处理表单提交
SQLPage 部署和配置

1、部署方式

可执行文件:下载对应系统的二进制文件,解压后直接运行:

tar -xzf sqlpage-*.tgz
./sqlpage.bin

Docker:使用官方镜像快速启动,支持挂载本地目录映射SQL文件:

docker run -it --name sqlpage -p 8080:8080 --volume "$(pwd):/var/www" --rm lovasoa/sqlpage

MacOS Homebrew:通过包管理工具安装:

brew install sqlpage

Serverless:支持编译为AWS Lambda函数,通过Docker构建并部署:

docker build -t sqlpage-lambda-builder 、-f lambda.Dockerfile --target builder
docker run sqlpage-lambda-builder cat deploy.zip > sqlpage-aws-lambda.zip

2、配置方式

可通过sqlpage.json配置文件或环境变量(如DATABASE_URLLISTEN_ON)进行参数设置,支持HTTPS自动证书申请(设置SQLPAGE_HTTPS_DOMAIN即可启用)。

SQLPage 技术栈

后端:Rust语言开发,基于Actix Web框架实现高性能HTTP服务。

前端:使用Tabler CSS实现专业UI风格,Handlebars模板引擎渲染组件,支持自定义HTML/CSS(通过.handlebars文件或html组件)。

典型应用场景和示例

数据展示类

图表分析:通过chart组件生成面积图、折线图等,例如季度收入统计:

SELECT 'chart' AS component, 'Quarterly Revenue' AS title, 'area' AS type;
SELECT quarter AS x, SUM(revenue) AS y FROM finances GROUP BY quarter;

卡片式布局:结合tabcard组件实现分类展示:

SELECT 'tab' AS component, true AS center; -- 顶部居中选项卡
SELECT format('Show %s cards', color) AS title, format('?tab=%s', color) AS link FROM tab_example_cards GROUP BY color;
SELECT title, description, color FROM tab_example_cards WHERE $tab IS NULL OR $tab = color; -- 根据选项卡过滤卡片

交互操作类

表单处理:创建用户注册表单并插入数据库:

SELECT 'form' AS component, 'User' AS title, 'Create new user' AS validate;
SELECT name, type, placeholder, required, description FROM user_form; -- 表单字段定义
INSERT INTO user SELECT $first_name, $last_name, $birth_date WHERE $first_name IS NOT NULL; -- 数据插入逻辑

文件上传与认证:支持用户登录、图片上传等功能,示例见 https://github.com/sqlpage/SQLPage#image-galleryhttps://github.com/sqlpage/SQLPage#user-management

SQLPage 核心优势

低门槛:仅需SQL技能就可以开发Web应用,适合数据科学家、分析师、业务团队快速构建原型。

高效率:不需要处理前端框架、路由逻辑,专注数据模型设计,加速开发迭代。

轻量级:单文件可执行程序,Docker镜像体积小,支持ARM架构(如树莓派)。

适用场景

• 内部数据管理系统(如CRM、工单系统)

• 数据分析仪表盘

• 简单CRUD应用(增删改查)

• 原型验证与MVP开发

SQLPage 快速上手

1、第一步:根据系统下载最新版本 https://github.com/sqlpage/SQLPage/releases 或拉取Docker镜像。

2、第二步:创建index.sql文件,编写简单查询(如列表或图表组件)。

3、第三步:启动服务,访问http://localhost:8080查看效果。

4、进阶:参考配置文档 https://github.com/sqlpage/SQLPage/blob/main/configuration.md 调整参数,或通过自定义Handlebars模板扩展UI。

SQLPage 打破了传统Web开发的技术壁垒,让数据从业者能够以最熟悉的SQL语言构建功能丰富的Web应用。你想快速验证业务想法,或是搭建内部工具,SQLPage 能成为你提升效率的得力工具。