问题标签 [falconframework]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
1017 浏览

python - 在 Heroku 摊位上使用 Gunicorn 的 Falcon 应用程序

我正在尝试使用 gunicorn 在 Heroku 上提供猎鹰应用程序。

我几乎遵循 falcon 文档并创建了一个基本应用程序。

在处理请求时,我正在使用 psycopg2 向每个资源添加连接游标。

但是现在每个请求都会导致超时:

我认为这是 psycopg2 或 gunicorn 或两者都有的问题。

有什么建议吗?

0 投票
2 回答
1268 浏览

python - 如何使用 FALCON 获得像 GAE 这样的实时重载?

我正在建立一个新项目,它将使用 python 来构建一个 RESTful 后端。我查看了 GAE,但选择了 Falcon Framework,因为应用程序最终需要安装在本地服务器上。GAE 有一个很棒的开发功能,它允许通过查看源代码和重新加载来进行迭代开发。

您可以在开发应用程序时让 Web 服务器保持运行。Web 服务器知道监视源文件中的更改并在必要时重新加载它们。

我怎样才能设置猎鹰做同样的事情?

0 投票
0 回答
168 浏览

python-2.7 - 方法在 iPython 中运行良好,但在 Gunicorn 上无休止地运行

我在使用 Gunicorn 服务器运行的 Falcon 框架中编写了一个应用程序。服务器启动时,应用首先学习随机森林模型:

然后返回发布到它的请求的概率。当我在 iPython 中运行代码时,这在我的服务器上运行良好(训练这个模型需要 15 秒,在 12 个内核上运行)。

当我编写应用程序时,我设置n_estimators=10并且一切正常。当我完成对应用程序的调整后,我n_estimators又回到了 150。但是,当我运行 Gunicorn 然后使用gunicorn -c ./app.conf app:app,从 htop 我可以看到forest.fit(x, t)所有内核上运行了几秒钟,之后所有内核的使用率下降到 0。在那之后,该方法会无限期地运行,直到 Gunicorn 工作人员在 10 分钟后超时。

这是我第一次使用 Gunicorn 和 Falcon 或任何 WSGI 技术,我不知道可能导致问题的原因或如何解决问题。

编辑:

gunicorn 的设置文件:

猎鹰代码:

0 投票
2 回答
98 浏览

qt - # 在 URL 中是必需的,但在 Qt 应用程序中的 PC 上不起作用

我有一个继承并必须支持的 Qt 应用程序。有一段代码可以生成如下所示的 URL:

然后页面加载setUrl

在 Mac 上这工作正常,但在 Windows 上没有加载页面,我什至看不到请求到达服务器。我找到了这个:

https://bugreports.qt.io/browse/QTWEBKIT-56

在它工作的 Mac 上,我在服务器获取的请求中看不到 # 。但是如果我删除代码中的 #,我会得到 404。

所以我的问题是这样的:

  1. # 在这种情况下是什么意思?
  2. 为什么需要识别此 URL?
  3. 为什么它可以在 Mac 上运行而不是在 Windows 上运行?是链接中的那个错误吗?

webserver是nginx,框架是falcon。

我对此有更多信息。

当 URL 包含我在 nginx 日志中看到的 # 时:

请求已成功处理。

但是当 URL 没有 # 我在日志中看到这个:

这将返回 404。

另一个更新:

我发现 # 是 Angular JS 路由的东西:

AngularJS路由没有哈希'#'

所以现在我唯一的问题是,是否有一个 Qt 错误阻止它在 Windows 中工作。

0 投票
1 回答
974 浏览

python - 猎鹰过早关闭连接

Falcon 框架从不返回整个响应。我从curl(或任何其他 HTTP 工具)得到的只是:

索引.py

这是定义路由的引导脚本。

route_account.py

这是路由处理程序类。我查了一下,收到的结果_result = account.create_account(**_payload)很好。

网络服务器

有人看到我没看到的吗?谢谢你的帮助。

0 投票
0 回答
47 浏览

python - res.location 对 url 查询字符串进行双重编码

我已经将一个 URL 传递给 res.location,它有另一个 URL 作为查询字符串,当 res.location 在标头中设置时,查询字符串中的 URL 被编码两次。

例如,传递给 res.location 的 URL 是,

预期标题: 位置http://localhost?redirect_uri=http%3A%2F%2Fsomepage

实际标题: 位置http://localhost?redirect_uri=http%253A%252F%252Fsomepage

欢迎任何解决此问题的建议。谢谢

0 投票
1 回答
1161 浏览

redirect - 从 falcon 重定向身份验证

在我的猎鹰应用程序中,我想从身份验证功能重定向到另一个页面。

我正在这样做:

但它仍然会在返回时调用底层端点并且不会重定向。

有没有办法导致这种重定向而不调用底层端点?

0 投票
1 回答
66 浏览

python-2.7 - Falcon 中变量的不稳定行为

情况

我有一台计算机连接到多个仪器。在这台计算机上,有一个nginx服务器使用uWSGI为Falcon WSGI应用程序提供服务。该应用程序被认为是,如果一个用户需要访问仪器,其他人将无法使用它。我通过以下一段(我的精简版)代码实现了这一点:

和请求正文

问题

当我“连接”一个仪器时,立即的答案显示它已连接。但是连续的 GET 请求并没有给出预期的答案。我明白了

但是,如果我出于测试目的在本地 uWSGI 实例上执行上述代码,则不会发生这种情况。是否有任何我不知道的 nginx-uWSGI 交互?感谢您提供任何帮助。

为了完整起见,这里跟随uWSGI调用nginx.conf的文件。api.ini

nginx/站点可用/api

api.ini

0 投票
0 回答
162 浏览

javascript - 从 Angular $http 调用时从 Falcon 重定向不起作用

我有一个 Falcon 应用程序,在中间件中我想使用falcon.HTTPMovedPermanently. 如果请求来自浏览器到 Falcon 端点,它可以正常工作。但是,如果请求是通过 $http 从 Angular 发出的,则重定向永远不会发生。

让我试着解释一下掉在我腿上的这个疯狂应用程序的流程:

  • 初始请求是从浏览器向 foo.bar.com:8000/xxx/1234 发出的
  • 路由到 Angular,后者使用 $http 向 foo.bar.com:8001/xxxx/1234/yyyy 发送请求
  • 路由到猎鹰端点 yyyy
  • 我的中间件首先得到它并重定向到 foo.bar.com:8004/someotherthing
  • 但其他东西永远不会被击中
  • 猎鹰端点运行,Angular 说的是:

    XMLHttpRequest 无法加载http://foo.bar.com:8001/xxxx/1234/yyyy。请求的资源上不存在“Access-Control-Allow-Origin”标头。因此,不允许访问来源“ http://foo.bar.com:8000 ”。

有人知道从 Angular 调用时如何使重定向工作吗?

0 投票
0 回答
1967 浏览

python - falcon 中间件中的错误处理

我正在为 falcon 框架实现 swagger 验证中间件。但是,不成功的请求存在问题。

如果在响应者中或什至在访问资源之前引发了 falcon HTTP 错误(例如,在 404 Not Found 的情况下),对于process_response中间件方法,响应仍然具有状态代码 200 和空主体。

我无法理解它是错误还是功能。

当我删除验证中间件时,一切都按预期工作。当有一个 swagger 验证中间件时,所有响应process_response都有状态码 200,包括不成功。

在 HTTP 404、401、400 等情况下,我想跳过响应的招摇验证/序列化。当响应出现时process_response,如果状态码为 200,我如何发现引发了错误?如何仅处理中间件中的成功响应?

另外,猎鹰在什么时候设置了正确的响应状态代码和正文?

蟒蛇3.5,猎鹰==1.0.0

任何帮助深表感谢。

UPD:最小的工作示例:

app.py

$ http http http://127.0.0.1:8000/test返回:

而网络应用程序打印200 OK None