我正在尝试将Falcon Web框架与gevents和asyncio等异步工作者一起使用.我一直在寻找教程,但我找不到任何将gevent与falcon结合起来的方法.由于我以前从未使用gevents,我不确定如何测试这个组合.有人可以引导我参加示例或教程吗?
谢谢!:)
我尝试在我的项目中使用falcon包.问题是我没有找到从HTTP post请求获取正文数据的方法.
我使用了示例中的代码,但req.stream.read()没有按预期返回JSON.
代码是:
raw_json = req.stream.read()
result.json(raw_json, encoding='utf-8')
resp.body = json.dumps(result_json, encoding='utf-8')
Run Code Online (Sandbox Code Playgroud)
如何获取POST数据?
谢谢你的帮助
我正在Falcon为我的应用程序编写中间件.当我得到任何错误我想提出错误,中断进程并返回我的自定义响应,看起来像:
{
"status": 503,
"message": "No Token found. Token is required."
}
Run Code Online (Sandbox Code Playgroud)
但标准Falcon错误实现不允许我将自定义字段设置为我的响应.
如何最恰当地解决这个问题?
我正在使用Falcon CORS仅允许从多个域访问我的 Web 服务。但它不能正常工作。
让我解释一下,如果我们看一下我的实现:
ALLOWED_ORIGINS = ['*']
crossdomain_origin = CORS(allow_origins_list=[ALLOWED_ORIGINS], log_level='DEBUG')
app = falcon.API(middleware=[RequireJSON(), JSONTranslator(), cors.middleware])
Run Code Online (Sandbox Code Playgroud)
当我向 API 服务发出任何发布请求时,我收到以下警告:
由于来源不允许中止响应
但是,然后我从我的 API 得到了正确的响应。
这是关于这个模块的官方文档:https : //github.com/lwcolton/falcon-cors
我已经开始在Ubuntu上使用Falcon制作API并且我一直在使用gunicorn来测试它,但我也想在Windows上尝试开发它.
因为我们知道gunicorn在Windows上不起作用所以我将不得不使用另一台可以运行wsgi的服务器.经过一些研究,我尝试使用女服务员,但事情并没有像我想象的那样发挥作用.
事情是,我不知道我做错了什么.
import srv3
from waitress import serve
serve(srv3, host='127.0.0.1', port=5555) # it is the same if i use serve(srv3)
Run Code Online (Sandbox Code Playgroud)
这是名为srv3的app文件
import falcon
api = application = falcon.API()
Run Code Online (Sandbox Code Playgroud)
我跑步时遇到这个错误 http localhost:5555
HTTP/1.1 500 Internal Server Error
Content-Length: 110
Content-Type: text/plain
Date: Tue, 01 Mar 2016 16:34:45 GMT
Server: waitress
Internal Server Error
The server encountered an unexpected internal server error
(generated by waitress)
Run Code Online (Sandbox Code Playgroud)
有人能给我一个关于如何使用女服务员来测试我的猎鹰应用程序的快速示例吗?
针对json编写的Swagger 2.0规范,在Falcon视图中验证传入请求的最便捷,最全面的方法是什么?
我曾经使用称为pyramid_swagger的出色工具对Pyramid应用程序执行相同的操作。它可以在应用程序级别无缝地插入,并将validated字典附加到request对象上。它包含了所有内容,包括路径参数,查询字符串参数,当然还有主体参数。
我尝试了Flex和falcon-json-io,但无法使其满足我的需要。另外serve_swagger是完全不同的故事,我不需要自动生成的API。
此时,我正在考虑编写自己的工具或扩展Flex或falcon-json-io。有什么我想念的吗?
我的路线如下:
app.add_route('/v1/my_route', MyResource())
app.add_route('/v1/my_route/{app_id}', MyResource())
app.add_route('/v1/my_route2/any_route', AnyRouteResource())
app.add_route('/v1/my_route2/any_route/{app_id}', AnyRouteResource())
Run Code Online (Sandbox Code Playgroud)
和中间件类似
class MyMiddleware(object):
def process_request(self, req, resp):
/** Here i want to get <app_id> value if it is passed **/
Run Code Online (Sandbox Code Playgroud) 在问这个问题之前,我想提一提,我知道我可以使用django代替该应用程序,但是我需要使用falcon而不是其他任何东西。
我只是在寻找一种方法
让我们采取一个非常简单的方案,以便我可以了解应用程序各个部分之间的数据流向。
我有一个使用html的简单登录页面:
<!DOCTYPE html>
<html>
<body>
<form action="***what-do-i-put-here***">
<fieldset>
<legend>Personal information:</legend>
First name:<br>
<input type="text" name="firstname" value="Mickey">
<br>
Last name:<br>
<input type="text" name="lastname" value="Mouse">
<br><br>
<input type="submit" value="Submit">
</fieldset>
</form>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
我使用默认存在于python中的simpleHTTpServer运行它。
现在,我只用一个响应者“ on_post()”创建了一个非常基本的猎鹰应用程序,该响应器仅使用从表单中接收到的数据进行回复,
我在localserver上使用uWsgi托管我的falcon应用程序。我如何使这两个不同的代码段彼此交互,以html形式表示,我们是如何在Php的情况下在“ actions”标签下定义php文件的名称的。鹘。
一个非常简单和小的工作示例受到高度赞赏
在 Angular2 http.get(url, options) 中使用OPTIONS 动词时收到这些错误,即使在 Falcon Rest API 中设置了适当的 CORS 标头。
XMLHttpRequest 无法加载http://localhost:8000/names。预检响应中的 Access-Control-Allow-Headers 不允许请求头字段授权。
resp.set_header("Access-Control-Allow-Origin", "*")
resp.set_header("Access-Control-Allow-Credentials", "true")
resp.set_header("Access-Control-Allow-Methods", "GET,HEAD,OPTIONS,POST,PUT")
resp.set_header("Access-Control-Allow-Headers",
"Access-Control-Allow-Headers, Origin,Accept, X-Requested-With, Content-Type, Access-Control-Request-Method, Access-Control-Request-Headers")
Run Code Online (Sandbox Code Playgroud)
对于非 OPTIONS / 普通 http.get() 请求,这可以正常工作。
Falcon是一种支持多种范例的编程语言,如消息传递,OO,功能,但代码看起来很干净.
您怎么看?它是否有机会起飞并被用作通用编程粘合剂语言?值得探索吗?如果您在实际项目中使用它,到目前为止您的印象是什么?
falcon ×10
python ×9
angular ×1
api ×1
asynchronous ×1
auth0 ×1
cors ×1
gevent ×1
html ×1
http-post ×1
json ×1
middleware ×1
python-3.x ×1
swagger ×1
typescript ×1
validation ×1
waitress ×1
web-services ×1
wsgi ×1