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()
例子
让我们把所有这些代码片段放在 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...
输出
在另一个终端,运行Curl命令,如下所示
C:\Users\user>curl localhost:8000/hello
Hello World
你也可以打开一个浏览器窗口,输入上述URL以获得 “Hello World “的响应。