Python Falcon 简明教程
Python Falcon - Hello World(WSGI)
要创建一个简单的 Hello World Falcon 应用程序,首先导入库并声明 App 对象的一个实例。
import falcon
app = falcon.App()
Falcon 遵循 REST 架构风格。声明一个资源类,其中包括一个或多个表示标准 HTTP 动词的方法。以下 HelloResource 类包含 on_get() 方法,预期在服务器收到 GET 请求时调用此方法。该方法返回 Hello World 响应。
class HelloResource:
def on_get(self, req, resp):
"""Handles GET requests"""
resp.status = falcon.HTTP_200
resp.content_type = falcon.MEDIA_TEXT
resp.text = (
'Hello World'
)
要调用此方法,我们需要将其注册到路由或 URL。Falcon 应用程序对象通过 add_rule 方法将处理程序方法分配到对应的 URL,来处理传入请求。
hello = HelloResource()
app.add_route('/hello', hello)
Falcon 应用程序对象只不过是一个 WSGI 应用程序。我们可以使用 Python 标准库的 wsgiref 模块中的内置 WSGI 服务器。
from wsgiref.simple_server import make_server
if __name__ == '__main__':
with make_server('', 8000, app) as httpd:
print('Serving on port 8000...')
# Serve until process is killed
httpd.serve_forever()
Example
让我们将所有这些代码段放入 hellofalcon.py
from wsgiref.simple_server import make_server
import falcon
app = falcon.App()
class HelloResource:
def on_get(self, req, resp):
"""Handles GET requests"""
resp.status = falcon.HTTP_200
resp.content_type = falcon.MEDIA_TEXT
resp.text = (
'Hello World'
)
hello = HelloResource()
app.add_route('/hello', hello)
if __name__ == '__main__':
with make_server('', 8000, app) as httpd:
print('Serving on port 8000...')
# Serve until process is killed
httpd.serve_forever()
从命令提示符运行此代码。
(falconenv) E:\falconenv>python hellofalcon.py
Serving on port 8000...