Falcon 快速开始
介紹
當(dāng)您的目標(biāo)是構(gòu)建快速、可擴(kuò)展的REST風(fēng)格API微服務(wù)時(shí), Falcon 是個(gè)不錯(cuò)的選擇。
這是一個(gè)可靠的、高性能的Python Web框架,用于構(gòu)建大規(guī)模應(yīng)用后端和微服務(wù)。Falcon鼓勵(lì)REST架構(gòu)風(fēng)格的 URI到資源的映射,以花費(fèi)盡可能少的精力同時(shí)又保持高效。
Falcon重點(diǎn)關(guān)注四個(gè)方面:速度、可靠性、靈活性和可調(diào)試性。它通過(guò)"響應(yīng)者(responder)" (諸如 on_get()、 on_put() 等)來(lái)實(shí)現(xiàn)HTTP。這些響應(yīng)者接收直接的請(qǐng)求,以及響應(yīng)對(duì)象。
官網(wǎng)地址:https://falconframework.org
安裝
Falcon 同時(shí)支持CPython和PyPy,后者具有更快的速度??紤]到兼容性,這里默認(rèn)采用CPython3.7作為解釋器。
pip install falconujson在CPython下,可以提高序列化及字符的解析速度,這里我們也安裝它
pip install ujsonCython
盡管falcon已經(jīng)足夠快,但是如果想在生產(chǎn)環(huán)境中獲得額外的速度提升,可以使用Cython擴(kuò)展來(lái)編譯Falcon。下面的命令將安裝Cython,然后調(diào)用Falcon’s setup.py,而后者會(huì)檢測(cè)Cython并使用系統(tǒng)默認(rèn)的C編譯器編輯Falcon.
pip install cython pip install -v --no-binary :all: falcon注意,在OS X系統(tǒng)上,編譯Cython需要安裝Xcode命令行工具。
WSGI 服務(wù)器
這里我們選擇使用Gunicorn:
pip install gunicorn快速開始
# things.pyimport falconclass ThingsResource(object):def on_get(self, req, resp):resp.status = falcon.HTTP_200resp.body = 'hello world\n'# falcon.API()的實(shí)例就是可調(diào)用的WSGI應(yīng)用 app = falcon.API() things = ThingsResource()app.add_route('/things', things)使用gunicorn運(yùn)行上述示例:
gunicorn things:app# 默認(rèn)運(yùn)行在本機(jī)的8000端口 [2019-01-08 22:32:25 +0800] [19905] [INFO] Starting gunicorn 19.9.0 [2019-01-08 22:32:25 +0800] [19905] [INFO] Listening at: http://127.0.0.1:8000 (19905)在另一個(gè)終端中請(qǐng)求:
curl localhost:8000/things# 響應(yīng)如下 hello worldcurl命令使用麻煩,下面我們安裝HTTPie并使用它:
pip install --upgrade httpie http localhost:8000/things# 響應(yīng)如下 HTTP/1.1 200 OK Connection: close Date: Tue, 08 Jan 2019 22:36:28 GMT Server: gunicorn/19.9.0 content-length: 12 content-type: application/json; charset=UTF-8hello world總結(jié)
以上是生活随笔為你收集整理的Falcon 快速开始的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 积累命令、用户、正则表达式
- 下一篇: 数据产品-数据指标标签常用sql函数