aardio - wsock.tcp.simpleHttpServer 访问数据库例程

go 复制代码
import win.ui;
/*DSG{{*/
var winform = win.form(text="远程屏幕控制服务器";right=500;bottom=320)
winform.add(
edit={cls="edit";left=20;top=20;right=480;bottom=280;edge=1;multiline=1;readonly=1;vscroll=1;z=1}
)
/*}}*/
winform.show()
thread.invoke(function(winform){
    import win.ui;    
    import wsock.tcp.simpleHttpServer;
    import inet.adapter;
    // 获取本机局域网IP地址
    var localIp = wsock.getLocalIp();
    // 启动 HTTP 服务端
    var server = wsock.tcp.simpleHttpServer("0.0.0.0", 8081);
    // 在界面上显示服务器信息
    winform.edit.print(`
     📱 访问地址:
        本地访问: http://127.0.0.1:8081;
        局域网访问: http://` + localIp + `:8081
     📋 功能说明:
        🔴 演示远程sqlite表格的读取
    `)
    winform.show()
 
    // 在后台线程中运行服务器
    server.run(
        function(response, request){
            response.write(`
<!DOCTYPE html>
<html>
<head>
     <meta charset="UTF-8">
     <title>表格演示</title>
     <style>
         /* 表格整体样式 */
         table {
             width: 80%;
             margin: 30px auto;
             border-collapse: collapse; /* 合并边框 */
             font-family: "Microsoft YaHei", sans-serif;
             box-shadow: 0 2px 10px rgba(0,0,0,0.1); /* 轻微阴影 */
             border-radius: 8px;
             overflow: hidden;
         }

         /* 表头样式 */
         th {
             background-color: #409EFF;
             color: white;
             padding: 14px;
             text-align: center;
             font-weight: bold;
         }

         /* 单元格样式 */
         td {
             padding: 12px;
             text-align: center;
             border-bottom: 1px solid #eee;
         }

         /* 隔行变色 */
         tr:nth-child(even) {
             background-color: #f8f9fa;
         }

         /* 鼠标悬浮效果 */
         tr:hover {
             background-color: #e3f2fd;
             transition: 0.2s;
         }
     </style>
</head>
<body>
     <table>
         <tr>
             <th>标题</th>
             <th>长度</th>
             <th>年份</th>
             <th>描述</th>
         </tr>
`)
import sqlite
var db = sqlite("/test.db");
for title,length,year,starring in db.each("SELECT * FROM film") {
response.write(..string.format("<tr><td>%s</td><td>%s</td><td>%s</td><td>%s</td></tr>",title,length,year,starring));
}
db.close();
response.write(`</table>
</body>
</html>
`);
        }
    );
            
    // 窗口关闭时停止服务器
    winform.onClose = function(hwnd) {
        server.stop();
    }
    
    // 线程驻留
    while(true){
        thread.delay(1);
    }
    
},winform);

win.loopMessage();
相关推荐
十二同学啊9 小时前
向量数据库:从核心原理到 RAG 与 Java 实战
数据库
蓝速科技10 小时前
会议室门牌公告通知发布选型与落地指南丨蓝速科技
大数据·运维·数据库·人工智能·科技
一 乐12 小时前
二手交易平台|基于springboot + vue二手交易平台(源码+数据库+文档)
java·数据库·vue.js·spring boot·小程序
SelectDB13 小时前
同等资源下 Apache Doris 4.2 vs StarRocks 4.1.1:1TB SSB 与 TPC-H 性能实测
大数据·数据库·数据分析
这个DBA有点耶13 小时前
数据库集群与分布式架构:三条技术路线对比、金仓KES RAC实测数据与决策框架
数据库·程序员·架构
MayBaymax13 小时前
MongoDB 索引与事务
java·数据库·mongodb
SelectDB13 小时前
Doris vs ClickHouse:企业 OLAP 走向下一阶段,两种技术路线如何选择
大数据·数据库·数据分析
vx-程序开发13 小时前
【计算机毕设】django校园跑腿服务系统83141
java·数据库·vue.js·spring boot·spring·elasticsearch·django
一 乐14 小时前
养老院管理系统|基于springboot + vue养老院管理系统(源码+数据库+文档)
java·数据库·vue.js·spring boot·毕业设计
这个DBA有点耶15 小时前
InnoDB页结构深入:页分裂、页合并、填充因子——B+树底层机制全解析
数据库·mysql·架构