1

我在 Django 中使用 HTSQL。我使用 HTSQL shell 来检查/生成我的查询,然后使用它们以 json 和原始格式呈现数据。就像,我的 HTSQL shell url 是:

http://127.0.0.1:8000/htsql

因此,当我想从 HTSQL shell 环境中的表中访问数据时,我会这样做,

http://127.0.0.1:8000/htsql/table_name

并获取 JSON 数据,

http://127.0.0.1:8000/htsql/table_name/:json

在后台,HTSQL shell 通过使用 GET 请求来获取这些数据。因此,从我的客户端 Javascipt/jQuery 中,我使用上述格式的 URL 发起一个 GET 请求,并直接获取我想要的 JSON 数据。

当我使用本地 Django 服务器时一切都很好,但是当我使用 Gunicorn 和 Nginx 部署我的项目时,它自然地开始阻止我在 GET 请求中的一些长(实际上,相当长)查询。我搜索了这个问题,发现 Gunicorn 允许 GET 请求值范围从 0 到 8190 个字符。所以我调整了我的 Gunicorn 设置的最大限制,但仍然是同样的问题。这是因为我的查询与多个过滤器值一起使用时,超过了 8190 限制。

所以我想使用 POST 请求作为安全和长请求的通常首选。因此,我将 GET 请求更改为 POST 请求,并将其指向与上述相同的 URL,并在我的本地 Django 服务器上进行了尝试(即没有 Gunicorn 和 Nginx)。但现在我收到“400 BAD REQUEST”。使用 firebug,我检查了响应是“不允许 POST 请求”。

我还注意到 HTSQL_Django 模块将所有请求路由到 htsql_django.views.gateway。我在 htsql_django 模块的 views.py 中查看了这个网关功能,但找不到任何线索。

是不是这样,HTSQL 不接受 POST 请求?如何使用 POST 请求从 HTSQL 获取/访问 JSON 数据?

4

0 回答 0