9。FastAPIRequest对象
9.FastAPI Request对象
在实际开发过程中,有些时候我们需要通过Request对象直接获取一些信息,如:我们希望获取客户端的IP等信息,此时我们在路由操作函数中直接定义类型为Request的对象参数,就可以在代码中使用Request对象进行数据的获取。
假设在路由函数中定义了request:Request,那么该对象可以获取到哪些信息呢?
操作
说明
request.client.host
客户端连接的 host
request.client.port
客户端连接的端口号
request.method
请求方法
request.base_url
请求路径
request.headers
headers
request.cookies
cookies
request.url
请求url
request.url.components
url组成
request.url.scheme
请求协议
request.url.hostname
请求host
request.url.port
请求端口
request.url.path
请求path
request.url.query
请求查询参数
request.path_params
请求路径参数
request.query_params
请求查询参数
request.form()
表单数据
request.json()
JSON数据
request.body()
Body数据,返回值类型是 bytes
代码示例: from fastapi import FastAPI from fastapi import Request app = FastAPI() @app.get(path="/test/{a}") async def test(request: Request): res = { # 客户端连接的 host "host": request.client.host, # 客户端连接的端口号 "port": request.client.port, # 请求方法 "method": request.method, # 请求路径 "base_url": request.base_url, # request headers "headers": request.headers, # request cookies "cookies": request.cookies, # 请求 url "url": request.url, # 请求组成 "components": request.url.components, # 请求协议 "scheme": request.url.scheme, # 请求 host "hostname": request.url.hostname, # 请求端口 "url_port": request.url.port, # 请求 path "path": request.url.path, # 请求查询参数 "query": request.url.query, # 获取路径参数 "path_params": request.path_params, # 获取查询参数 "query_params": request.query_params } return res
执行请求: curl http://127.0.0.1:8000/test/1?q=query { "host":"127.0.0.1", "port":58982, "method":"GET", "base_url":{ "_url":"http://127.0.0.1:8000/" }, "headers":{ "host":"127.0.0.1:8000", "user-agent":"curl/7.55.1", "accept":"*/*" }, "cookies":{}, "url":{ "_url":"http://127.0.0.1:8000/test/1?q=query", "_components":[ "http","127.0.0.1:8000","/test/1","q=query","" ] }, "components":["http","127.0.0.1:8000","/test/1","q=query",""], "scheme":"http", "hostname":"127.0.0.1", "url_port":8000, "path":"/test/1", "query":"q=query", "path_params":{ "a":"1" }, "query_params":{ "q":"query" } }
我国量子计算云平台上线两大国产量子编程软件科技日报讯(童娅记者吴长锋)记者2月28日从合肥高新区了解到,中国科学院量子信息与量子科技创新研究院量子计算云平台(以下简称量子计算云平台)日前成功部署两大全新国产量子编程软件is
急速下滑后迎来反弹比特币未来怎么走?21世纪经济报道记者家俊辉胡天姣广州北京报道伴随乌克兰局势的演变,市场上将比特币视为数字黄金的观点正在减弱,转而更倾向于将其当做高风险的投资工具。此前2月24日,乌克兰局势陡然升级
从2399降至1469,256GB容量120HZ柔性屏,这才叫极致性价比极致性价比,是Redmi的初衷之一,许多Redmi手机也都在反映这一点。喜欢Redmi的网友,大多也十分看重极致性价比这个特性。当前,Redmi也在往高端进军,K50电竞版被一些网
前端经典面试题(包含JSCSSReact浏览器等)简答题1什么是防抖和节流?有什么区别?如何实现?参考答案防抖触发高频事件后n秒内函数只会执行一次,如果n秒内高频事件再次被触发,则重新计算时间思路每次触发事件时都取消之前的延时调用
再也不要瞧不起U盘了,快到起飞的固态U盘推荐U盘可以说是我们日常生活中经常使用的东西了,传文件,打印资料,看电影,装软件等很多工作都离不开U盘。但是传统U盘受限于存储颗粒的质量和主控性能的制约,速度往往非常不理想,读取速度只
拍过这种照片后,我的3台iPhone都废了重点回顾1。刚刚发布的这手机,绝对是来捣乱的2。B站现在最火的网红,居然是一群假狗3。打脸了,这手机居然逆袭了不知道大家有没有刷到过最近几年火遍全网的各种元宵灯会?其中最火的,还得
16进制输出代码程序大家好,开发过程中,经常会遇到16进制方式输出数据,现把代码实现粘贴出来,希望对大家有用,其他进制输出,原理实现类似,只是输出格式做了变换。voidhexlogprint(uint
CoinGate支持70多种加密货币直接向乌克兰国家银行捐款2月28日消息,加密支付服务商CoinGate开发了一个支付协议,以支持乌克兰的70多种加密货币,包括比特币(BTC)以太坊(ETH)莱特币(LTC)Dogecoin(DOGE)等
爱奇艺终于正常有时候撞了南墙能回头,亡羊补牢犹未晚。文丨BT财经张津京一年一度的中概股年报季翩翩而来。站在媒体的角度看,这些中概股企业选择披露年报的时机都非常有分寸和考量。有的信心满满,觉得成绩
德邦百亿卖身背后,京东的阳谋与野心撰文杨俏陈米粒编辑田晏林不出意外,这或许是中国物流史上,近年来最贵的一笔收购。据接近交易的人士透露,德邦股份已确认并入京东,交易对价或超百亿元。行业普遍认为,收购德邦,能够弥补京东
购买二手iPhone有什么利弊?这里是太平洋知科技,如果本文对你有帮助,欢迎点赞关注我。往期精彩回顾如何长时间保存重要数据?拒绝U盘,拒绝网盘目录一二手iPhone的缺点二二手iPhone的优点三常见的二手iPh