ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

FastAPI 学习之路(十三)Cookie 参数,Header参数

2021-10-17 10:31:46  阅读:213  来源: 互联网

标签:None FastAPI 学习 Header token 参数 import Optional


系列文章:

  FastAPI 学习之路(一)fastapi--高性能web开发框架

  FastAPI 学习之路(二)

  FastAPI 学习之路(三)

  FastAPI 学习之路(四)

  FastAPI 学习之路(五)

      FastAPI 学习之路(六)查询参数,字符串的校验

  FastAPI 学习之路(七)字符串的校验

    FastAPI 学习之路(八)路径参数和数值的校验

  FastAPI 学习之路(九)请求体有多个参数如何处理?

  FastAPI 学习之路(十)请求体的字段

      FastAPI 学习之路(十一)请求体 - 嵌套模型 

    FastAPI 学习之路(十二)接口几个额外信息和额外数据类型

   我们先来看下如何获取Header参数。代码实现

from typing import Optional

from fastapi import FastAPI, Header

app = FastAPI()


@app.get("/items/")

def read_items(user_agent: Optional[str] = Header(None)):

    return {"User-Agent": user_agent}

我们看下接口请求

 

 

 

这样我们在请求的时候就可以获取接口的请求参数了,我们可以在这里做一些特殊的处理。后续在项目的中增加。

        我们看下如何实现带cookie参数。

from typing import Optional
from fastapi import Cookie, FastAPI
app = FastAPI()
@app.get("/items/")
def read_items(ads_id: Optional[str] = Cookie(None)):
    print(ads_id)
    return {"ads_id": ads_id}

       其实也是很简单的,我们这里请求下看下。

 

 

 

我们简单的做了一个请求。

        这样我们在后续的请求中,我们可以对于header或者cookie做特殊的处理。

        我们写一个简单的demo。我们要求header的必须有token且token必须是456,没有返回无权限,cookie必须有一个name,且等于123,否则返回认证失败。

        我们看下如何实现呢

from typing import Optional
from fastapi import Cookie, FastAPI,Header
app = FastAPI()
@app.get("/items/")
def read_items(name:  Optional[str] = Cookie(None),
               token: Optional[str] =  Header(None)):
    if token is None or token!='456':
        return '无权限'
    if name is None or name !="123":
        return  "认证失败"

 我们看下接口请求

 

 我们看下不带token

 

   token不等于456

 

 

 我们看下cookie 中的name不等于123,token正确

 

 

        接口可以正常返回。

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

标签:None,FastAPI,学习,Header,token,参数,import,Optional
来源: https://www.cnblogs.com/leiziv5/p/15416263.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有