当前位置: 首页 > news >正文

做外贸网站怎么访问外国网站网站建设瀑布流

做外贸网站怎么访问外国网站,网站建设瀑布流,视频网站做视频容易火,京津冀协同发展调研报告一、前言 FastAPI 的高级用法可以为开发人员带来许多好处。它能帮助实现更复杂的路由逻辑和参数处理#xff0c;使应用程序能够处理各种不同的请求场景#xff0c;提高应用程序的灵活性和可扩展性。 在数据验证和转换方面#xff0c;高级用法提供了更精细和准确的控制#…一、前言 FastAPI 的高级用法可以为开发人员带来许多好处。它能帮助实现更复杂的路由逻辑和参数处理使应用程序能够处理各种不同的请求场景提高应用程序的灵活性和可扩展性。 在数据验证和转换方面高级用法提供了更精细和准确的控制确保输入数据的质量和安全性。它还能更高效地处理异步操作提升应用程序的性能和响应速度特别是在处理大量并发请求时优势明显。 此外高级用法还有助于更好地整合数据库操作、实现数据的持久化和查询优化以及实现更严格的认证和授权机制保护应用程序的敏感数据和功能。总之,掌握 FastAPI 的高级用法可以帮助开发人员构建出功能更强大、性能更卓越、安全可靠的 Web 应用程序。 本篇学习如何在FastAPI中直接使用Request对象和如何使用数据类Dataclasses。 二、术语 2.1. Request对象 是用于处理 HTTP 请求的核心对象它提供了许多功能和属性以便更灵活地处理和访问客户端发送的请求信息。例如获取客户端的IP地址/主机可以通过访问Request对象来实现。 2.2. middleware函数 middleware函数中间件它在每个请求被特定的路径操作处理之前以及在每个响应返回之前工作。可以用于实现多种通用功能例如身份验证、日志记录、错误处理、请求处理、缓存等。其主要作用是在请求和响应的处理过程中添加额外的处理逻辑而无需在每个具体的路由处理函数中重复编写这些逻辑。 一般在碰到以下需求场景时可以考虑使用中间件来实现 身份验证验证请求的身份如检查 JWT token 或使用 OAuth2 进行验证日志记录记录请求和响应的日志包括请求方法、URL、响应状态码等信息错误处理处理应用程序中的异常情况捕获异常并返回自定义的错误响应请求处理对请求进行处理例如解析请求参数、验证请求数据等缓存在中间件中检查缓存中是否存在请求的响应如果存在则直接返回缓存的响应。 2.3. dataclasses 表示类和函数的一种轻量级数据定义方式。通过 dataclass 装饰的数据类具有以下特点和优势 自动生成方法无需手动编写繁琐的 __init__、__repr__ 等方法装饰器会自动添加这些方法。默认值和类型提示可以为属性设置默认值并添加类型提示提高代码的可读性和可维护性。不可变实例通过设置 frozenTrue可以创建不可变的实例增加代码的稳定性防止对象被意外修改。类型检查和验证支持类型检查和验证可使用 field 函数添加对属性的验证规则。自动生成合理的 __repr__ 和 __eq__ 方法方便比较和输出对象。继承和默认值工厂支持继承和默认值工厂使复杂的类层次结构定义更简单。可转换为字典或元组提供了 asdict 和 astuple 函数方便将数据类实例转换为字典或元组。 三、前置条件 3.1. 创建虚拟环境安装依赖 conda create -n fastapi_test python3.10 conda activate fastapi_test pip install fastapi uvicorn 四、技术实现 4.1. 使用Request对象实现黑名单访问拦截 # -*- coding: utf-8 -*- import uvicorn from fastapi import FastAPI, Request, HTTPException from starlette import statusapp FastAPI()black_list [192.168.102.88]app.middleware(http) async def my_middleware(request: Request, call_next):client_host request.client.hostprint(fclient_host: {client_host})if client_host in black_list:raise HTTPException(status_codestatus.HTTP_403_FORBIDDEN,detailProhibit access)else:response await call_next(request)return responseapp.get(/items/) async def read_items():return [{item_id: Foo}]if __name__ __main__:uvicorn.run(app, host0.0.0.0,port7777)调用结果 正常访问未命中黑名单 非法访问命中黑名单 4.2. 使用dataclasses # -*- coding: utf-8 -*- import uvicorn from fastapi import FastAPI from dataclasses import dataclass from typing import Unionapp FastAPI()dataclass class Item:name: strprice: floatdescription: Union[str, None] Nonetax: Union[float, None] Noneapp.post(/items/) async def read_items(item: Item):print(fitem: {item})return itemif __name__ __main__:uvicorn.run(app, host0.0.0.0,port7777) 调用结果 使用pycharm的Http Request功能进行测试 选择POST Text Body自动创建请求模版 修改IP和端口填写请求参数 执行并观察结果 五、附带说明 5.1.不使用dataclasses的示例 # -*- coding: utf-8 -*- import uvicorn from fastapi import FastAPI from typing import Unionapp FastAPI()app.post(/items1) async def read_items(name: str,price: float,description: Union[str, None],tax: Union[float, None] ):item Item(name name,priceprice,descriptiondescription,taxtax)return itemif __name__ __main__:uvicorn.run(app, host0.0.0.0,port7777)调用结果 使用pycharm的Http Request功能进行测试 使用dataclasses vs 不使用dataclasses说明 使用dataclasses代码更加简洁、易读并且不易出错使用dataclasses使得代码在不同的上下文中更易于使用和扩展使用dataclasses增强了代码的可读性和可维护性。
http://www.tj-hxxt.cn/news/132998.html

相关文章:

  • 育贤网站建设网站做简介
  • icann 域名注册网站乐享黔程是什么公司
  • 汉口江岸区城市建设局网站宁波网站建设小程序开发
  • 长沙网站推广平台易企秀怎么制作
  • 做网站的语小程序专区
  • 游戏网站域名免费网站制作器
  • 智能网站建设公司排名免费的行情网站app大全下载
  • 集团网站手机版做前端常用的网站及软件
  • 专门做设计的网站有哪些企业门户网站什么意思
  • 深圳做网站专业的公司WordPress修改分类id
  • 培训建设网站运行wordpress环境
  • 外贸网站如何引流外贸推广平台排名
  • 免费速建网站陕西省建设工程安全协会网站
  • 360网站建设windowxp做网站服务器
  • 江苏网站建设价格做自己的优惠券网站
  • 网站的图片怎么做无法下载哪个网站可以做前端项目
  • 嘉兴网站建设公司就找嘉乐网络用织梦做企业网站
  • 怎么做仿制网站网站建设和技术服务合同范本
  • 无锡专业做网站凡科建设网站步骤
  • 网站建设服务是什么意思简洁大气企业网站模板
  • 大学生兼职网站开发毕设论文平面海报设计
  • 宣威市住房与城乡建设局网站网站设计西安学习
  • 苏州网站推物联网系统设计方案
  • 动漫网站开发需求分析计算机培训班培训费用
  • 我想创个网站需要网站建设的是哪一类人
  • 制作个人网站的软件旅游seo
  • 河南建设部网站夜无忧论坛官网
  • 网站开发人员招聘要求深圳市官方网站
  • 论述网站建设整个流程做代理
  • 香水网络营销策划方案怎样做网站的优化 排名