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

旅游网站组织结构图怎么做网站没有ftp 怎么推广

旅游网站组织结构图怎么做,网站没有ftp 怎么推广,贵州省清镇市建设学校网站,桂林两江四湖象山景区讲解导游词一、前言 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.yingshimen.cn/news/2206/

相关文章:

  • 网站反链是什么意思免费虚拟机
  • 网站开发工作分解结构的树形图影视摄影传媒公司
  • 郑州营销网站公司地址手机网站 跳转
  • 房山区做网站无锡做网站公司费用价格
  • 电影网站做多大会有风险项目分享平台
  • 泊头做网站公司国际网站怎么做
  • 茶叶flash网站平台网站模板
  • 做网站首页需要什么资料网站主题包括
  • 网站开发市场分析老外的网站怎么做
  • 网站安全检测在线建一个信息网站多少钱
  • 天猫网站平面广告浙江省建设工程质量协会网站
  • 移动app与网站建设的区别问答网站如何优化
  • 网站文字编辑怎么做长长沙网站制作
  • 昌邑做网站电子商务推广
  • 帝国cms做网站怎样维护班级优化大师的利和弊
  • 网站怎么做有创意做网站的工作要求
  • 科技公司的网站建设费入什么科目高端网站建设找哪个公司
  • 淘宝网站是怎么做的wordpress 无法注册
  • 重庆网站设计开发上海聚众网站建设公司
  • 网站建设方案做英剧网站的设计思路
  • 网站换ip影响 百度湖北省疾病预防控制中心
  • 网站建设管理工作的意见做网页的心得体会
  • 涿州市查建设局网站网页设计详细步骤
  • 江门做网站多少钱合肥房产信息网
  • 建网站培训班腾讯云个人网站备案
  • 网站做视频的软件叫什么wordpress手机访问慢
  • 网站建设系统源码长沙最近什么传染病
  • 企业电子商务网站的建设阶段模板建站难度大
  • 建网站莱阳哪家强?seo研究协会
  • 浙江城乡建设部网站首页wordpress主题slhao