export const description = '在此页面中,我们将深入探讨如何通过不同的接口实现符合预期的交互。'
实现身份验证后,蝙蝠侠担心在高峰时段,尤其是小丑企图释放阿卡姆疯人院所有罪犯时,可能会引发大量请求,导致服务器崩溃。为此,Robyn 向他介绍了常量请求和多核扩展功能,以增强应用程序的性能。
Robyn 告诉蝙蝠侠,可以为每个路由预处理响应,这样即使在路由处理之前,响应就已准备好。这样做可以减少访问路由器的次数,从而提高响应速度。
<CodeGroup title="Request" tag="GET" label="/hello_world">
```python {{ title: 'untyped' }}
@app.get("/", const=True)
async def h():
return "Hello, world"
```
```python {{title: 'typed'}}
@app.get("/", const=True)
async def h():
return "Hello, world"
```
</CodeGroup>
Robyn 告诉蝙蝠侠,可以使用 --workers
参数将应用程序扩展到多个核心。这样,系统会创建多个应用实例并分配负载,从而提升性能。
```python {{ title: 'untyped' }}
python3 app.py --workers=N --process=M
```
```python {{title: 'typed'}}
python3 app.py --workers=N --process=M
```
</CodeGroup>
authenticate
方法应在用户通过身份验证时返回 Identity
对象,否则返回 None
。Identity
对象可以包含任意数据,并可以通过 request.identity
属性在路由方法中访问。
在提升了应用程序的性能后,蝙蝠侠非常高兴,并希望应用也可以接收从前端项目中发出请求。
然而,这是他却遇到了 CORS(跨源资源共享)问题!于是,他向 Robyn 咨询如何解决这个问题。Robyn 向他介绍了相关的功能: