
fastapi
文章平均质量分 71
番茄牛腩不吃番茄
一名努力提升自己的测试工程师
展开
-
python:Fastapi - 登录接口BUG修改
今天主要是唠嗑下登录接口的两个,哈哈……真实印证了一句话,一行代码除了十个。首先,看下代码出错的地方:函数主要是验证数据查询登录账号,然后进行密码比对是否相等。问题- 出错代码:因为这个函数是专门验证密码是否相等,如果相等就返回,否则就是,然后因为多加了一个,所以这个条件就不成立了,那就直接返回而登录接口中又有一个非真判断,因为一直是所以这个判断也失效了这种情况就会出现密码错误,也可以登录的情况,这也是在写代码的不细心导致的,测试也没站在测试的角度进行测试。问题- 出错代码:这一段是原创 2022-06-02 11:37:52 · 872 阅读 · 0 评论 -
python:Fastapi - 元数据和文档 URL
前面的用户指南已经可以满足开发简单的接口了,但是开发的接口只有自己知道,为了项目组的前端和测试都能知道,框架引入了来进行展示。参数注释 : 上述是一些常规的配置信息,现在在原来的基础上增加标签元数据配置 :然后我们看下是什么样子的(这里我是单独新建了一个文件来存储) :最后,不要忘记在接口路径中定义标签,取中的值(示例:) : 文档默认的的三个,要是默认值,要么给指定路径,不可以给,否则就会访问不了文档页面,这是因为所有的数据都是基于来生成的。例如:我们也可以给文档连接修改原创 2022-06-01 20:41:42 · 994 阅读 · 0 评论 -
python:Fastapi - 依赖项中使用上下文管理器
什么是上下文管理器上下文管理器是您可以在with语句中使用的任何 Python 对象例如:您可以使用with关键字读取文件withopen("./file.txt")asf:data=f.read()print(data)运行时,open("./file.txt")会创建一个称为上下文管理器的对象。当with块完成时,它确保关闭文件,即使有异常。如自定义上下文管理器,那类中必须要有下面两个魔术方法def__enter__(sel...原创 2022-05-12 19:33:12 · 1017 阅读 · 0 评论 -
python:Fastapi - BackgroundTasks (后台任务)
今天主要说后台任务,它主要就是在返回响应后运行任务。对于需要在请求之后发生的操作很有用,但客户端实际上不必在接收响应之前等待操作完成。这包括,例如:电子邮件发送的通知,需要连接电子邮件服务器 很慢的数据文件处理,因文件大写入时太慢使用BackgroundTasks首先,导入BackgroundTasks其次在路径操作函数中定义一个参数,其类型声明为:BackgroundTasksfromfastapiimportBackgroundTasks,FastAPIap...原创 2022-05-11 19:48:54 · 6460 阅读 · 0 评论 -
python:Fastapi - 基于jwt生成token和密码加密
上篇文章开发了两个接口,但是针对注册的接口密码没有加密,针对登录接口的返回token没有加密和失效时间等等…那么本篇主要叙述,针对这个两个接口的处理,首先是基于python-jose库来生成token,再基于passlib库来做密码加密和解密处理。记得要先安装依赖库:pipinstallpasslibpipinstallpython-jose…..好了,话不多说,下面开始进入正文…..sc_app/dependencies.py#-*-coding:utf...原创 2022-05-11 00:46:19 · 3528 阅读 · 0 评论 -
python:Fastapi - 初识接口开发
前面文章聊了工程目录,如果掌握了前面一些列文章就可以进行简单的接口开发了。后续文章主要是唠接口的开发和fastapi框架的进阶阶段,那么这次是开发了注册和登录两个接口redis/sc_app/redispy.pyimportredis__all__=["redispy"]classRedispy:def__init__(self):self._connect=redis.Redis(host...原创 2022-05-08 20:00:16 · 1717 阅读 · 0 评论 -
python:Fastapi - 更大的应用 - 多个文件
书接上文,上篇文章唠了SQL(关系)数据库,今天主要是唠下多文件,也就是对应的工程目录的应用开发。工程目录概述admin - 文件夹是作者规划的后台接口,可忽略 model - 文件夹是主要存放数据库表 routers - 文件夹也是作者规划的存放接口的,后续的实践接口也写在这里 schemas - 文件夹是存放的一些接口的模型 sql - 文件夹是存放一些基于sqlalchemy的查询方法 databases.py - 文件是数据库的连接操作,这里是使用的sqlite.db dep原创 2022-04-22 19:33:59 · 2623 阅读 · 0 评论 -
python:Fastapi - SQL(关系)数据库
Fastapi可关联市场的主流数据库,下面主要是结合sqlalchemy操作mysql数据库。当然你也可以使用SQLite,因为它使用单个文件并且Python具有集成支持。操作起来更简单,坑也少一点。话不多说,下面进入正题首先得要先安装:1.pipinstallsqlalchemy工程目录中新建sql_app包,可以理解是一个小的数据库操作包1.sql_app2.├──__init__.py3.├──crud.py4.├──...原创 2022-03-27 20:01:59 · 3493 阅读 · 1 评论 -
python:Fastapi - Middleware(中间件)
简单唠一些最近有些忙,时间不怎富裕,学习总结也落下了,今天总结了一些,咱们继续书接上文。继上篇文章主要唠了安全性的一部分知识(后续再补一些知识),今天主要聊下中间件。FastAPI中的 “中间件” 是一个函数,它在每个请求被特定的路径操作处理之前,以及在每个响应返回之前工作。中间件中间件(英语:Middleware),又译中间件、中介层,是一类提供系统软件和应用软件之间连接、便于软件各部件之间的沟通的软件,应用软件可以借助中间件在不同的技术架构之间共享信息与资源。而在Fastapi原创 2022-03-22 19:55:48 · 4263 阅读 · 1 评论 -
python:Fastapi - 安全性-OAuth2中的password流
简单絮叨一些前面一篇文章唠了依赖项,今天主要唠下安全性。更多的就是身份认证或者授权等问题,一听这词就感觉很复杂,fastapi提供了专门处理安全性的工具安全性使用密码和 Bearer 的简单 OAuth2此处使用的是OAuth2中的password流password流是 OAuth2 中定义的一种方式(流),用于处理安全和身份验证。OAuth2 指在使后端或 API 可以独立于对用户进行身份验证的服务器。鉴于这个鬼玩意比较生疏,针对代码一段一段且一步一步的唠:fake_u原创 2022-03-03 18:52:35 · 1516 阅读 · 1 评论 -
python:Fastapi - 依赖项操作
简单絮叨一些前面一篇文章唠了异常处理和路径操作配置,今天主要唠下依赖项Fastapi中提供了依赖注入系统,怎么理解呢?其实就是本来我是要接收很多参数来构造对象,现在我只接收一个已经实例化的对象。网上很多的抽象解读,感觉看多了,都emo了,虽说上述总结的一句话比较狭义,但是并没有偏多少,主旨是存在的。依赖注入常用于以下场景:共享业务逻辑(复用相同的代码逻辑) 共享数据库连接 实现安全、验证、角色权限 等……上述场景均可以使用依赖注入,将代码重复最小化。依赖项初识依赖原创 2022-03-03 11:28:44 · 1152 阅读 · 0 评论 -
python:Fastapi - 异常处理、路径配置及JSON编码器
简单絮叨一些上篇文章主要唠了表单和文件上传等功能,这次主要是唠下异常处理、路径操作配置和JSON兼容编码器等。异常处理就是针对某些情况下,需要向客户端返回错误提示。路径操作配置就是路径操作装饰器支持多种配置参数。JSON兼容器是在某些情况下,您可能需要将数据类型转换为与 JSON 兼容的类型等,然后存储起来。处理错误使用HTTPException某些情况下,需要向客户端返回错误提示。需要向客户端返回错误提示的场景主要如下:客户端没有执行操作的权限 客户端没有访问资源的权限原创 2022-03-01 17:11:10 · 2786 阅读 · 0 评论 -
python:Fastapi - 请求表单与文件
简单絮叨下,如有问题请私信上篇文章主要唠了接口响应的一些东西,今天主要是唠Form表单和文件处理。表单可以理解为数据采集,而文件处理就是在获得客户端的文件进行数据返回或者直接上传服务器。fastapi框架中提供了操作表单的Form和处理文件的File,其参数的方式与 Body 和 Query一样。表单数据From它接收的不是json,而是表单字段,使用表单需要安装pip install python-multipart(Python 的流式多部分解析器)fromfastapiimp..原创 2022-02-28 17:58:11 · 1843 阅读 · 1 评论 -
python:Fastapi - 响应模型和状态码
简单絮叨一下前面聊Cookie和Header一些事情,今天主要聊聊关于响应的一些事情响应就是接口的返回值,及状态码等,这个是必须要有的。其返回的数据主要是用于前端调试页面和测试进行测试的参考。响应模型fastapi只需要在任意路径(@app.get()、@app.post()、@app.put()、@app.delete())操作中使用response_model 参数来声明用于响应的模型。注意点: response_model是「装饰器」方法(get,post 等)的一个参数。不像之前原创 2022-02-24 20:43:18 · 2627 阅读 · 0 评论 -
python:Fastapi - Cookie 和 Header
简单唠叨下前面唠了一些关于请求体的一些事情,这次主要唠下cookie和header的东西,cookie、header和Path、Query一样都是继承公共的Param类,传参的一些参数都差不多是一样的。区别的就是Path、Query是在postman中的Param中放入参数进行请求,而cookie、header则是在postman中的Headers中放入参数进行请求Cookie参数导入 Cookie声明 Cookie 参数的结构与声明 Query 参数和 Path 参数时相同。第一个值是原创 2022-02-23 17:22:40 · 1139 阅读 · 0 评论 -
python:Fastapi 请求体-嵌套模型
请求体 - 字段字段与使用Query、Path和Body在路径操作函数中声明额外的校验和元数据的方式相同,可以使用Pydantic的Field在Pydantic模型内部声明校验和元数据。注意点:Field是直接从pydantic导入的,而不是像其他的(Query,Path,Body等)都从fastapi导入。首先导入Field:frompydanticimportField其次开始声明模型定义字段:frompydanticimport...原创 2022-02-13 21:07:21 · 2348 阅读 · 0 评论 -
python:Fastapi 请求体-多个参数
新年快乐,今天主要是唠唠如何传请求体当需要给api发送一些数据时,就需要用到请求体了。请求体就是客户端给api发送的一些数据,响应体是api发送给客户端的一些数据。这里就不能使用 GET 操作(HTTP 方法)发送请求体。要发送数据,你必须使用下列方法之一:POST(较常见)、PUT、DELETE 或 PATCH。请求体如何发送,怎么发送,fastapi给提供了专门的方法,fastapi提供了Pydantic来声明请求体:首先pydantic中的BaseModel:from原创 2022-02-07 22:10:59 · 4384 阅读 · 2 评论 -
python:Fastapi 查询参数及路径参数校验
这次主要聊聊Fastapi中,查询参数和路径参数的使用及校校验,Path是为路径参数声明校验和元数据,而 Query是 为查询参数声明校验和元数据。两个的区别就是,路径参数是跟在路径后面的,例如:/path/1,1 即为路径参数;查询参数是键值对传值,例如:/path/q=1,q=1 即为查询参数介绍完后,下面进入实例操作环节…查询参数和字符串校验查询参数校验FastAPI 允许参数声明额外的信息和校验,以下面的应用程序为例:fromtypingimportOpti...原创 2022-01-27 17:24:07 · 4618 阅读 · 0 评论 -
python:Fastapi 路径参数
前面聊了主要聊了一些简介和一些例子,今天主要是聊路径参数、查询参数等操作。文章中肯定是避免不了官方文档的东西,但都会进行实操,也会列出踩坑点,希望对您有所帮助。话不多少,进入代码的世界…路径参数路 径 参 数fastapi中添加路径可使用与 Python 格式化字符串相同的语法来声明路径"参数"或"变量":fromfastapiimportFastAPI@app.get("/items/{item_id}")asyncdefread_item(item_id):...原创 2022-01-23 11:57:46 · 2724 阅读 · 0 评论 -
python:Docker部署基于Fastapi接口
这几天文章更新的都不是很频繁,主要是在倒腾fastapi框架(当然,自身懒惰也有,年底比较忙也有),这个框架官方介绍就是高性能,易于学习,高效编码,生产可用,因为最近挺火的,也来蹭下。本篇文章主要聊得是利用docker搭建fastapi接口,其余文章后面空了会补上来吧,下面进入正文。步骤一:安装docker安装docker,网上教程很多,可自行百度步骤二:安装Fastapi安装完成后,并编写一些接口,可先复制下方接口(这个后面文章会补上来…)fromenumimportEnu...原创 2022-01-12 20:07:00 · 2445 阅读 · 0 评论 -
python:初识 Fastapi
安装Fastapi首先安装Fastapipipinstallfastapi然后安装uvicorn来作为服务器:pipinstallfastapi当然你也可以直接安装所有(包括依赖包)pipinstallfastapi[all]分步编写脚本步骤 1:导入 FastAPI新建一个工程目录,在工程目录中新建一个.py文件(文件名称自定义即可)fromfastapiimportFastAPIFastAPI 是一个为你的 API 提供了所有...原创 2022-01-15 10:41:10 · 3305 阅读 · 1 评论