FastAPI 学习之路(二十六)全局依赖项

摘要:
该依赖关系可以以类似于定义FastAPI学习路径(25)路径操作修饰符依赖关系的方式添加到整个FastAPI应用程序中。让我们看看如何实现它。例如,我们需要全局验证令牌。让我们看看我们应该如何实现代码。为了测试项目,我们添加了一个令牌。我们用参数测试令牌。我们第一次将代币文章带到公众号。欢迎关注。

  有时,我们要为整个应用添加依赖项。通过与定义FastAPI 学习之路(二十五)路径操作装饰器依赖项

类似的方式,可以把依赖项添加至整个 FastAPI 应用。

        那么我们看下,如何去实现,比如我们全局都需要校验token。我们去看下,我们应该如何实现代码。

from fastapi import  FastAPI,Header, HTTPException,Depends

fake_items_db = [{"city": "beijing"}, {"city": "shanghai"},
                 {"city": "heze"}]

def verify_token(token: str = Header(...)):
    if token!="leizishuoceshikaifa":
        raise HTTPException(status_code=400, detail="Token header invalid")
app = FastAPI(dependencies=[Depends(verify_token)])

@app.get("/items/")
def read_items():
    return fake_items_db
@app.get("/item/")
def read_item(city:str):
    for item in fake_items_db:
        if item['city']==city:
            return item

    return {"msg":"not exict"}

 那么我们看下,接口是否都需要token。

测试items

FastAPI 学习之路(二十六)全局依赖项第1张

 我们增加下token

FastAPI 学习之路(二十六)全局依赖项第2张

 我们去测试下带参数

FastAPI 学习之路(二十六)全局依赖项第3张

    我们带下token

FastAPI 学习之路(二十六)全局依赖项第4张

文章首发在公众号,欢迎关注。

FastAPI 学习之路(二十六)全局依赖项第5张

免责声明:文章转载自《FastAPI 学习之路(二十六)全局依赖项》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Redis实现访问控制频率linux安装OpenCV以及windows安装numpy、cv2等python2.7模块下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

微信公众平台开发——微信授权登录(OAuth2.0)

1、OAuth2.0简介   OAuth(开放授权)是一个开放标准,允许用户让第三方应用访问该用户在某一网站上存储的私密的资源(如照片,视频,联系人列表),而无需将用户名和密码提供给第三方应用。   允许用户提供一个令牌,而不是用户名和密码来访问他们存放在特定服务提供者的数据。每一个令牌授权一个特定的网站(例如,视频编辑网站)在特定的时段(例如,接下来的2...

提升权限令牌

提权相关函数: GetCurrentProcess() 介绍: 功能:检索当前进程的伪句柄。 函数原型:HANDLE GetCurrentProcess(); 返回值:返回值是当前进程的伪句柄。 OpenProcessToken() 介绍:功能:打开与进程相关联的访问令牌。 函数原型:BOOL WINAPI OpenProcessToken(      ...

[python-flask]Flask框架笔记

Flask框架学习笔记 目录 Flask框架学习笔记 笔记 flask的request对象 __name__的作用 flask中的session 利用flask-wtf扩展包的CSRFProtect flask-cors配置跨域请求 视图函数 日志功能 关于ORM模型 & flask-sqlalchemy flask-migrate数据库迁...

OAuth2.0协议专区-Springcloud集成springsecurity oauth2实现服务统一认证,应该时最简单的教程了~

1.配置认证服务器(1) 首先配置springsecurity,其实他底层是很多filter组成,顺序是请求先到他这里进行校验,然后在到oauth /** * @author: gaoyang * @Description: 身份认证拦截 */ @Order(1) @Configuration //注解权限拦截 @EnableGloba...

Struts2 06--系统拦截器防止数据重复提交

一.拦截器简要概述 拦截器,在AOP(Aspect-Oriented Programming)中用于在某个方法或字段被访问之前,进行拦截然后在之前或之后加入某些操作。拦截是AOP的一种实现策略。 在Webwork的中文文档的解释为——拦截器是动态拦截Action调用的对象。它提供了一种机制可以使开发者可以定义在一个action执行的前后执行的代码,也可以在一...

百度登录加密协议分析(下)

上一篇百度登录加密协议分析(上)主要讲解了codestring,gid,token,rsakey等参数的产生。好了,废话不多说,咱们进入今天的主题,咱们接着上一篇的内容往下讲解,最后还剩三个字段 callback,password,ppui_logintime。(我的新书《Python爬虫开发与项目实战》出版了,大家可以看一下样章) 第三部分: 分析第一...