当前位置: 首页 > 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. 创建虚拟环境安装依赖 增加Google Search以及langchainhub的依赖 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.hkea.cn/news/14485937/

相关文章:

  • 网站建设的费是多少深圳网站空间购买
  • 泉州响应式网站建设新手什么网站做外贸
  • 工信部网站备案的需要幕布有什么超好用的做简历的网站
  • 中学网上做试卷的网站山东招聘网站建设
  • 网站建设时间如何查询秦皇岛网站开发公司电话
  • 网站建设实战全国十大物联网平台公司
  • 无锡网站建设价格做网站的生产方式
  • 网站代备案流程同步编辑wordpress
  • 网站制作体会建筑设计公司经营范围有哪些
  • 那家建设网站p2p公司最好?刚建设的网站多久能在百度查到
  • 怎么做网站邮箱研究生核心课程建设网站
  • 埃及网站后缀编写网页所用的语言是
  • 自己做的网站让别人看到哈尔滨自助建站
  • 网站开发与实现文献综述wordpress酷
  • 介绍家乡的网站设计策划书如何打造网站
  • 网站艺术设计京东网站建设流程
  • 学做网站视频百度指数移动版app
  • html5 wap 网站模板注册网站租空间哪里租
  • 天河做网站外贸建站及推广
  • 建设银行网站无法访问django网站开发视频教程
  • 桂林医院网站建设手机网站图片锚链接怎么做
  • 网站建设与设计 毕业设计自己做的网站怎么上排行榜
  • 单位网站建设目的网页设计规范要求
  • seo整站优化方案网站建设策略书
  • 网站建设费要交印花税吗网站站长 感受
  • 园林景观设计公司点评的网站和论坛专业微信网站建设多少钱
  • 营销型网站源码下载珠宝首饰网站开发
  • c语言开发网站太原seo公司网站
  • 基于用户体验的网站设计免费企业网站建设哪种
  • 自己做网站百度能收录码百度提问