【问题标题】:How to create HTTP GET and POST methods in kdb如何在 kdb 中创建 HTTP GET 和 POST 方法
【发布时间】:2019-06-26 17:22:42
【问题描述】:

用 kdb 数据库设置 HTTP GET 和 POST 方法的最佳方法是什么?

我希望能够从 kdb 表中提取列名,以在浏览器中创建一个带有可填写字段的简单表单,允许用户在字段中输入文本,然后将该文本插入并保存到我的表中.

例如,如果我有下表...

t:([employeeID:`$()]fName:`$(); mName:`$(); lName:`$())

到目前为止,我知道如何打开一个端口\p 9999,然后通过连接到本地主机http://localhost:9999 在浏览器中查看该表,并且我知道如何只获取列名:cols t

虽然我不确定如何从这个表构建一个有用的 REST API 来实现上述目标,主要是用输入的数据更新表。我从这个blog postKx reference 知道.Q.hg.Q.hp。但是信息很少,我仍然不确定如何让它为我的特定目的工作。

【问题讨论】:

  • 我相信更简单的解决方案可能是在Python 中使用pyqflask。通过在原生 Python 环境中加载带有 pyqkdb 表,我可以使用 flask 为 API 构建 HTTP 方法。

标签: kdb


【解决方案1】:

根据您的前端(客户端)技术,您可以使用 HTTP 请求或WebSockets。使用 HTTP 请求将需要额外的工作来自定义请求的输出,因为默认情况下它返回 HTML 数据。

如果您的客户端支持像 Javascript 这样的 Websockets,那么它会很容易使用。

基本上,您需要做两件事来设置 WebSocket:

1) 启动您的 KDB 服务器并为 WebSocket 请求设置处理函数。函数是.z.ws。例如,简单的函数如下所示:

  q) .z.ws:{neg[.z.w].Q.s @[value;x;{`$ "'",x}]}

2) 在客户端设置消息处理函数,从客户端打开websocket连接并向KDB服务器发送请求。

详情: https://code.kx.com/v2/wp/websockets/

示例: https://code.kx.com/v2/wp/websockets/#a-simpledemohtml

【讨论】:

  • 前端将是 javascript。所以听起来WebSockets 可能有用。虽然我将不得不再次重新阅读这个例子,看看它是否更有意义。语法有点混乱,我只是想可能有一个更简单的解决方案来允许前端访问 kdb 表。
猜你喜欢
  • 1970-01-01
  • 2017-03-16
  • 1970-01-01
  • 2019-10-29
  • 2011-10-30
  • 2020-07-19
  • 2019-04-08
  • 2014-08-30
  • 1970-01-01
相关资源
最近更新 更多