CSS 写 SQL 查询?后端慌了!

记 21 React + ts + tailWind 实战 ( 二 ) API(Application Programming Interface)是指应用程序编程接口,包括在操作系统中的动态链接库文件例如dll\so,或者基于TCP层的socket连接,用来提供预定义的方法和函数,调用者无需访问源码和理解内部原理便可实现相应功能。JSON是最主流的网络传输格式,定义请求或者返回对象的结构,以及该如何针对不同的情况返回不同的HTTP 状态码。需要注意的是,JSON 中的键和值必须遵循严格的语法规则,如键名必须是字符串,不能包含多余的逗号等。它可以是您的应用程序名称或客户名称。 阅读详情

CSS 写 SQL 查询?后端慌了!

cover_image

初次接触到这个项目时,我的第一反应只有四个字:

这也行?

最近在 X 上大火的一个叫 TailwindSQL 的项目,引发了广泛讨论。

其核心玩法非常简单——通过 CSS 的 className 来实现 SQL 查询功能。

前端发展到这个地步了吗?

让我们先看一个示例:

<DB className="db-users-name-where-id-1" />

如果你是前端开发者,可能会下意识地认为这是在定义样式;

但如果你是后端开发者,估计已经开始皱眉了。

然而实际上,这段代码执行的是:

SELECT name FROM users WHERE id = 1;

看到这里,我确实愣了一下。

TailwindSQL 的本质

简而言之,它将 SQL 语句拆解为一个个「类名」片段。

这种做法类似于 TailwindCSS 对 CSS 的处理方式:

db-users
db-users-name
db-users-name-where-id-1
db-products-orderby-price-desc

这些 className 最终会被解析为 SQL 语句,并在 React Server Components 中直接执行。

你甚至无需编写 API 接口,也无需使用 ORM 框架。

这个方案可靠吗?

从工程实践的角度来看,答案其实很明确:

并不可靠。

SQL 的复杂性,从来不是语法层面的问题。

真正的挑战在于:

  • 表关系管理

  • 复杂 JOIN 操作

  • 嵌套子查询

  • 事务控制

  • 权限验证

  • 边界条件处理

一旦查询逻辑稍显复杂,className 就会变得越来越冗长,最终形成一串难以维护的代码片段。

说实话,我很难想象在实际项目中,会有开发者认真地写出这样的代码:

className="db-orders-user-products-joinwhere-user-age-gt-18and-order-status-paidgroupby-user-id"

这已经不再是 DSL(领域特定语言)了,而是一种折磨。

我认为 TailwindSQL 很难在生产环境中得到应用,它更像是 vibe coding(氛围编程)的产物。

是否使用?可以了解一下,然后继续编写你熟悉的 SQL 吧。

  • TailwindSQL 官网:https://tailwindsql.com/
【JSON2WEB】 13 基于REST2SQL 和 Amis 的 SQL 查询分析器 关于数据的问题没有一句SQL不能解决的,如果有就两句。我设计开发的所有信息系统 内嵌 SQL 查询分析器是标配,可执行CRUD的操作,也就是SQL的Insert、Select、Update、Delete操作。号称SQL的四大基本操作。SQL才是做完美的存在。BS前端就不吐槽了,知识点太多,比上下五千年的历史事件还多,比地球上的乡村还多。 阅读详情

相关推荐

全面IT基础文档:C#、JS、CSS、HTML、SQL快速指南

本文还有配套的精品资源,点击获取 简介:本文介绍了IT行业中五个基础领域的重要文档,包括C#、JavaScript、CSS、HTML和SQL的核心知识点和特性。每部分都详细解释了各自技术的关键特征以及可能包含在相关帮助文档(如 csharp.chm 、 JAVASCRIPT.chm 、 css学习手册.chm 、 html基...

weixin_34162851的博客 2160

离谱!CSS类名里写SQL!前端又要“篡位”后端了?

作为一个写了多年代码的开发者,我见识过把 HTML 写在 JS 里的(JSX),也见过把 CSS 写在 JS 里的(CSS-in-JS)。所以,这并不是一个为了颠覆现有开发模式而生的工具,而是一次充满极客精神的“整活”。它使用 SQLite,并且是在服务端运行,不会把 SQL 逻辑发送到浏览器端。它的口号是:“像写 TailwindCSS 一样,用类名来写你的数据库查询!看到这里,你可能会问:这玩意儿在浏览器里跑,岂不是要把数据库密码暴露给用户了?作者似乎是认真的,他还搞出了更复杂的语法。

weixin_44829437的博客 503

基于ExtJS的可视化在线SQL查询系统开发

ExtJS 是一款基于 JavaScript 的企业级前端框架,采用面向对象的设计思想,提供丰富的 UI 组件和强大的数据绑定机制。其核心架构遵循 MVC 模式,支持模块化开发,便于构建高复杂度的单页应用。关键组件如Component(所有UI元素的基类)、Container(容器管理子组件)、Panel(可折叠、可拖拽的复合组件)构成了界面搭建的基础。title: '查询面板',html: '这是一个ExtJS面板实例'});

weixin_42589700的博客 880

TailwindSQL:当今最离谱、却可能最顺手的开发者潮流

可这套 token 的叙事方式更像在下指令:先说“我要哪些字段”,再说“从哪张表”,然后“筛选条件是什么”,最后“怎么排序、取几条”。尽管如此,真要上生产环境、要扛性能、要做审计、要能长期维护,那就继续用成熟的 query builder 和结构化 SQL——别为“写起来爽”付出“修起来痛”的代价。你少写了标点,少换行,读起来也更像“步骤清单”。这篇文章会把 TailwindSQL 讲清楚:它到底是什么、怎么跑起来(含例子)、大家在吹什么、哪些场景真能用,以及最关键的——它到底配不配上生产环境。

粉丝们务必加入微信粉丝群 689

WEB开发核心技能集:SQL、CSS、JavaScript学习资源

本文还有配套的精品资源,点击获取 简介:掌握SQL、CSS和JavaScript技术对WEB开发者至关重要,它们是构建动态、互动且视觉吸引人的网页的基础。SQL是用于数据库操作的关键语言,CSS负责网页样式和布局,而JavaScript则使网页具有动态功能。理解CSS3的高级特性、JavaScript的核心概念及其新版本特性,以及前端框架的使用,是成为专业WEB开发者的基石...

weixin_35749786的博客 2137

一文读懂GAN, pix2pix, CycleGAN和pix2pixHD

本文翻译、总结自朱俊伟的线上报告,主要讲了如何用机器学习生成图片。 来源:Games2018 Webinar 64期 :Siggraph 2018优秀博士论文报告 人员信息 主讲嘉宾 姓名:朱俊彦(Jun-Yan Zhu) 现状:麻省理工学院博士后(PostDoc at MIT),计算机科学与人工智能实验室(Computer Science and Artificial In...

gdymind的博客 6万+

FastAPI+SQLite+Tailwind CSS:构建轻量级全栈应用的实践

前后端分离架构 :清晰的职责划分,便于团队协作和功能扩展自动化API文档 :FastAPI自动生成交互式API文档,大大提升开发效率类型安全 :前后端均采用类型提示和验证机制,减少运行时错误轻量级部署 :单一可执行文件(通过PyInstaller打包)+ SQLite数据库文件,部署简单响应式设计 :使用Tailwind CSS实现全设备适配通过FastAPI、SQLite和Tailwind CSS的组合,我们成功构建了一个功能完整、性能优良的轻量级全栈应用。

qq_43639543的博客 1431

redhawk-sc使用简介

数据完整性对结果的准确性有很大影响,所以一定要保证数据完整性,Redhawk-sc在跑完后,Report里有Data Integrity界面,在这个界面会看到设计数据和库文件的数据完整性,在相应的报告中会有没有覆盖到的数据情况,要对每一项仔细检查,保证输入数据没有问题。文件一般加密,用户唯一需要选择的是文件的corner。其中,cell lef除了常规的standard cell,还有如DTCD,BTSV和clamp等cell的lef,不可缺失,否则data integrity将不是100%。

weixin_48518726的博客 3134

快速上手 Tailwind CSS:一份现代化的样式解决方案

Tailwind CSS 快速入门指南 Tailwind CSS 是一个实用工具优先的 CSS 框架,通过原子类直接在 HTML 中构建样式,无需烦恼命名或样式污染。核心特点包括: 安装配置:通过 npm 安装,配置 Vite 后引入基础指令即可使用 核心语法:采用[修饰符:]属性-值结构,提供丰富的工具类: 布局:flex/grid、间距、尺寸 样式:颜色、边框、阴影 响应式:移动端优先的断点系统

muyouking 1606

学习Python,小白如何搭建Python环境?

学习Python,首先需要搭建好Python环境,主要分为【运行环境搭建】、【开发环境搭建】以及【Python环境配置】三个环节,接下来我将对Python环境搭建这三个部分进行介绍。

weixin_72923265的博客 8997

计量经济学(因果关系探究-空间双重差分模型: 破解空间溢出效应的因果分析工具)

本文介绍了传统双重差分(DID)模型及其局限性,重点阐述了空间DID模型的必要性。传统DID通过组间差分分离干预效应,但无法处理空间溢出效应。空间DID模型引入空间计量方法,包括三种类型:空间自回归模型(SDID-SAR)捕捉因变量溢出,空间误差模型(SDID-SEM)处理残差相关性,空间杜宾模型(SDID-SDM)同时考虑因变量和自变量的空间滞后。模型选择需结合空间相关性检验,适用于环境政策、房地产限购等存在空间交互效应的研究场景。

YBAdvanceFu的博客 2030

告别手敲 SQL ?GPT-3 自动帮你写

作者 |Brian Kane@SeekWell编译 | 伍杏玲出品 | AI科技大本营(ID:rgznai100)【导语】手写业务 SQL 很繁琐?GPT-3来帮你!本文作者通过手动...

AI科技大本营 2万+

PCB光绘文件DFM检查:从Gerber验证到制造闭环

Gerber文件是PCB设计交付制造的核心数据载体,其准确性直接决定硬件可制造性与量产良率。理解Gerber格式规范、IPC网表比对原理及DFM(Design for Manufacturability)自动检测逻辑,是电子工程师保障设计落地的关键能力。通过电气连通性验证、物理DRC规则扫描与工艺兼容性分析,DFM工具能提前识别开路、短路、孔环不足、阻焊异常等典型问题,避免投板后返工甚至批量报废。在国产化替代趋势下,华秋DFM等平台已深度适配Altium Designer工作流,支持一键导入、智能报告与协同

weixin_42620563的博客 507

ef联表查询速度_一个是EF内联多表查询,一个是EF中写SQL文。

public IList GetAllMenu(){using (IMMEntities context = new IMMEntities()){var menuList = from A in context.BASE_FUNCTIONjoin B in context.BASE_MENU on A.FUNCTION_ID equals B.FUNCTION_IDselect new Menu...

weixin_39693437的博客 248

如何提高电路的抗干扰能力

本内容详细介绍了电源传导干扰处理,包括滤波、Feedthrough电容器、磁环、磁珠、屏蔽的使用与选型,EMC电磁兼容测试项目简介与要求,单片机与电源抗干扰处理等。

让你爱上电路设计 8593

cherry使用MCP协议Streamable HTTP实践

摘要:Streamable HTTP协议是针对传统HTTP+SSE传输方式的改进方案,解决了连接恢复、服务器资源占用和单向通信等问题。该协议基于普通HTTP实现,支持无状态服务器、纯HTTP服务和多轮对话,同时兼容现有基础设施。通过演示展示了服务端和客户端的配置方法,体现了其灵活性和实用性。MCP(多轮对话协议)作为扩展LLM能力的关键技术,代表着未来交互式AI的发展趋势。

全网120W+关注AI拉呱,专注人工智能以及科技前沿! 563

由于完整的购物商城代码会相当庞大,并且会涉及到前端、后端、数据库等多个部分,我将为你提供一个非常简化的示例,分别用 Python(后端)、HTML/CSS/JavaScript(前端)和 SQL(数据

由于完整的购物商城代码会相当庞大,并且会涉及到前端、后端、数据库等多个部分,我将为你提供一个非常简化的示例,分别用 Python(后端)、HTML/CSS/JavaScript(前端)和 SQL(数据库)来描述。你可能需要使用更强大的后端框架(如 Django、Ruby on Rails、Node.js + Express 等)和数据库(如 MySQL、PostgreSQL、MongoDB 等)。2. 前端(HTML/CSS/JavaScript)2. 前端(HTML/CSS/JavaScript)

DonahueBarrie的博客 801

PLC凸轮开关指令编程应用——控制算法

凸轮开关指令的作用是在PLC程序中根据凸轮开关(Cam Switch)的状态执行不同的操作。凸轮开关通常是机械式的开关装置,它的位置会随着机械运动的变化而改变。凸轮开关的状态可以用来检测机器的位置、角度或其他相关信息,从而触发相应的控制动作。总结起来,凸轮开关指令是PLC编程中常用的一种控制算法,通过检测凸轮开关的状态来触发相应的操作。本文将介绍凸轮开关指令的应用和相应的控制算法,并提供相关的源代码示例。在这个示例中,凸轮开关状态的值代表不同的位置,根据凸轮开关状态的不同,执行相应的动作。

LiJavascript的博客 1034

【HTML+CSS】使用HTML与后端技术连接数据库

HTML负责构建网页的骨架,提供用户交互的表单等元素。用户通过表单输入数据,并通过表单的提交(submit)事件将数据发送到后端。

2509_93882637的博客 1005

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

Web开发前端、后端与全栈的区别是什么?

刚入门Web开发者总会听到前端开发、后端开发、全栈开发等岗位描述及相关介绍说明。很多人不清楚前端、后端、全栈到底指的是什么?对应岗位需求是什么?本文主要从三者概念、技术内容要求等角度对前端、后端及全栈进行简单说明。 web开发 1、前端开发 (Front-End Development) 在基于浏览器的Web页面开发中,前端开发主要是指创建Web应用与使用者的交互体验效果与人机交互页面...

ShuYunBIGDATA的博客 8814

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

上一篇: Hono与Honox一次尝试
下一篇: Vue 原生渲染真要来了?Lynx引擎首次跑通Vue
小小荧
博客等级 码龄9年 133粉丝 92原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值