- Python Falcon教程
- Python Falcon - 主页
- Python Falcon - 简介
- Python Falcon - 环境设置
- Python Falcon - WSGI 与 ASGI
- Python Falcon - Hello World(WSGI)
- Python Falcon - 女服务员
- Python Falcon - ASGI
- 蟒蛇Falcon - Uvicorn
- Python Falcon - API 测试工具
- 请求与响应
- Python Falcon - 资源类
- Python Falcon - 应用程序类
- Python Falcon - 路由
- Falcon - 后缀响应者
- Python Falcon - 检查模块
- Python Falcon - Jinja2 模板
- Python Falcon - cookie
- Python Falcon - 状态代码
- Python Falcon - 错误处理
- Python Falcon - 钩子
- Python Falcon - 中间件
- Python Falcon - CORS
- Python Falcon - Websocket
- Python Falcon - Sqlalchemy 模型
- Python Falcon - 测试
- Python Falcon - 部署
- Python Falcon 有用资源
- Python Falcon - 快速指南
- Python Falcon - 有用的资源
- Python Falcon - 讨论
Python Falcon - 资源类
Falcon 的设计借鉴了 REST 架构风格的几个关键概念。REST 代表关系状态传输。REST 定义了 Web 应用程序架构的Behave方式。
REST 是一种基于资源的架构。在这里,REST 服务器托管的所有内容(无论是文件、图像还是数据库表中的行)都被视为资源,可能有多种表示形式。REST API 提供对这些资源的受控访问,以便客户端可以检索和修改它们。
服务器的资源应该只有一个统一资源标识符 (URI)。它仅标识资源;它没有指定对该资源采取什么操作。相反,用户从一组标准方法中进行选择。用于对资源进行操作的 HTTP 动词或方法。POST、GET、PUT 和 DELETE 方法分别执行 CREATE、READ、UPDATE 和 DELETE 操作。
Falcon 使用普通的 Python 类来表示资源。这样的类充当应用程序中的控制器。它将传入请求转换为一个或多个内部操作,然后根据这些操作的结果编写返回给客户端的响应。
每个资源类都定义了各种“响应程序”方法,一种对应于资源允许的每种 HTTP 方法。响应程序名称以“on_”开头,并根据它们处理的 HTTP 方法进行命名,如on_get()、on_post()、on_put()等。
在上面使用的hellofalcon.py示例代码中,HelloResource(资源类)有一个on_get()响应器方法。响应者必须始终定义至少两个参数来接收请求和响应对象。
import falcon 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' )
对于ASGI应用程序,响应者必须是协程函数,即必须使用async关键字定义。
class HelloResource: async def on_get(self, req, resp): """Handles GET requests""" resp.status = falcon.HTTP_200 resp.content_type = falcon.MEDIA_TEXT resp.text = ( 'Hello World' )
Request对象表示传入的 HTTP 请求。可以通过此对象访问请求标头、查询字符串参数以及与请求关联的其他元数据。
Response 对象表示应用程序对请求的 HTTP 响应。该对象的属性和方法设置状态、标头和正文数据。它还公开了一个类似字典的上下文属性,用于将任意数据传递给钩子和其他中间件方法。
请注意,上面示例中的HelloResource只是一个普通的 Python 类。它可以有任何名称;但是,约定将其命名为xxxResource。