随笔分类 - fastapi
摘要:上一篇文章,我们分享了WebSockets一些入门的,我们这节课,在原来的基础上,对于讲解的进行一个演示。我们最后分享了依赖token等。首先我们对上次的代码进行调整。 我们之前分享FastAPI 学习之路(三十八)Static Files,我们分享了动态文件的使用,我们按照之前分享的。将之前代码的
阅读全文
摘要:在实际的开发中呢,我们可能有些接口呢,不能对比进行开放,比如说我们内部的一些监控的接口,那么我们肯定想着如何在接口文档中进行屏蔽,那么我们看下应该如何实现呢。 @app.get("/legacy/", include_in_schema=False) def get_legacy_data(resp
阅读全文
摘要:我们之前的分析都是基于http的请求,那么如果是WebSockets可以支持吗,答案是可以的,那么我们看下如何实现的。 from fastapi import FastAPI, WebSocket from fastapi.responses import HTMLResponse app = Fa
阅读全文
摘要:我们想要在接口中返回xml格式的内容,我们应该如何实现呢。 from fastapi import FastAPI,Response @app.get("/legacy/") def get_legacy_data(): data = """<?xml version="1.0"?> <shampo
阅读全文
摘要:我们之前的部署都是基于本地的部署,我们这次来看下,如何基于docker去部署我们的项目。 1.首先去编写一个docker镜像的制作文件Dockerfile FROM python:3.7 RUN pip install fastapi uvicorn aiofiles fastapi-async-s
阅读全文
摘要:在前面的开发中,我们在写代码的过程中呢,很多时候都是利用 uvicorn main:app --reload 来部署启动我们的服务,但是在实际的开发中,我们有时候可能需要加断点去调试我们的程序,只有加了断点,我们才能快速的开发调试我们实际遇到的问题,那么我们应该怎么加断点呢,其实也是很简单的,可以一
阅读全文
摘要:对于开发好的接口需要进行测试之后次才能发布。当我们在开发的时候,没有提测前,我们也要对我们自己的接口进行测试,那么FastAPI 自身也带了针对开发的接口的测试的。我们看下FastAPI官方给我们了什么样的支持呢。 接口还是基于FastAPI 学习之路(三十七)元数据和文档 URL实现。我们看下如何
阅读全文
摘要:我们在实际的开发中,都会遇到,我们要执行的一些任务很耗时,但是呢,对于前端呢,没必要进行等待。比如发送邮件,读取文件。我们在fastapi如何实现呢。 其实很简单,fastapi已经给我们封装好一个现成的模块,我们直接调用使用即可,非常方便。我们举一个简单例子演示下 from fastapi imp
阅读全文
摘要:我们可以使用APIRouter来声明路径操作,我们先看下如何简单的去使用。 from fastapi import APIRouter router=APIRouter() app = FastAPI() # 新建用户 @router.post("/users/", tags=["users"],
阅读全文
摘要:你可以在 FastAPI 应用中自定义几个元数据配置。 你可以设定: Title:在 OpenAPI 和自动 API 文档用户界面中作为 API 的标题/名称使用。 Description:在 OpenAPI 和自动 API 文档用户界面中用作 API 的描述。 Version:API 版本,例如
阅读全文
摘要:之前我们的都是创建在一个文件中,但是我们在实际中,肯定不能这么设计,那么我们去创建一个目录,叫models。大致如下。 主要目录是 __init__.py 是一个空文件,但是说明models是一个package crud.py 数据库操作相关 database.py 数据库配置相关 models.p
阅读全文
摘要:之前我们分享的是基于单个的数据库表的操作,我们在设计数据库的时候也设计了跨表,我们可以看下数据库的设计。 class User(Base): __tablename__ = "users" id = Column(Integer, primary_key=True, index=True) emai
阅读全文
摘要:通过创建pydantic模型进行验证提交数据 from pydantic import BaseModel class UserBase(BaseModel): email: str class UserCreate(UserBase): """ 请求模型验证: email: password: "
阅读全文
摘要:在大型的web开发中,我们肯定会用到数据库操作,那么FastAPI也支持数据库的开发,你可以用 PostgreSQL MySQL SQLite Oracle 等 本文用SQLite为例。我们看下在fastapi是如何操作设计数据库的 #这个安装依赖也可以 pip install sqlalchemy
阅读全文
摘要:什么是中间件呢,"中间件"是一个函数,它在每个请求被特定的路径操作处理之前,以及在每个响应返回之前工作. 它接收你的应用程序的每一个请求. 然后它可以对这个请求做一些事情或者执行任何需要的代码. 然后它将请求传递给应用程序的其他部分 (通过某种路径操作). 然后它获取应用程序生产的响应 (通过某种路
阅读全文
摘要:CORS 或者「跨域资源共享」 指浏览器中运行的前端拥有与后端通信的 JavaScript 代码,而后端处于与前端不同的「源」的情况。 源 源是协议(http,https)、域(myapp.com,localhost,localhost.tiangolo.com)以及端口(80、443、8080)的
阅读全文
摘要:OAuth2 规定在使用(我们打算用的)「password 流程」时,客户端/用户必须将 username 和 password 字段作为表单数据发送。我们看下在我们应该去如何实现呢。 我们写一个登录接口,默认返回token和token_type from fastapi import FastAP
阅读全文
摘要:既然我们已经有了所有的安全流程,就让我们来使用 JWT 令牌和安全哈希密码让应用程序真正地安全。 关于 JWT 它是一个将 JSON 对象编码为密集且没有空格的长字符串的标准。字符串看起来像这样: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMj
阅读全文
摘要:有时,我们要为整个应用添加依赖项。通过与定义FastAPI 学习之路(二十五)路径操作装饰器依赖项 类似的方式,可以把依赖项添加至整个 FastAPI 应用。 那么我们看下,如何去实现,比如我们全局都需要校验token。我们去看下,我们应该如何实现代码。 from fastapi import Fa
阅读全文
摘要:你写API接口肯定你是希望是有权限的人才能访问,没有权限的人是不能访问的,那么我们应该如何去处理呢,我们可以用的验证方式有很多,我们这次分享的是用:OAuth2来认证。那么我们看下,需要怎么才能实现呢。我们现在的接口有一部分需要用OAuth2认证后才可以访问,另一部分可以随便去访问的,那么我们看下,
阅读全文