我们在实际的开发中呢,总会遇到这样的场景,我们想在启动或者终止的时候,做一些事情,那么应该如何实现呢,其实也是很简单。fastapi提供了这样的操作。 那么我们看下具体是怎么实现的呢 app = FastAPI() @app.on_event("startup") def startup_event(): print("s
在实际的开发过程中,我们数据库,可以根据连接的环境不一样,我们会拆分成不一样的数据库,根据我们所要用的环境来选择对应的数据库即可,那么我们应该如何去实现根据选择去选择不一样的数据库呢。 首先,我们找一个配置的文件,我们这里演示 我们使用config.py去配置环境
有了上一遍的基础,其实这个一对一很简单,我们在之前的websockets管理中已经实现了一对一发消息的内容,这次呢,我们只需要实现一对一如何处理消息即可。 @app.websocket("/ws/{user}/") async def websocket_many_point( websocket: WebSocket, user
相对于之前的text的消息来说,我们之前发送的消息都是text的居多,那么对于text格式的消息来说,我们处理起来,尤其是后端要麻烦的多,那么我们可不可以传递json格式的,对于前后端来说都好处理的一种格式的消息,那么答案来说是可以的。我们需要做下处理。 我们在之前的websocket
之前我们的都是创建在一个文件中,但是我们在实际中,肯定不能这么设计,那么我们去创建一个目录,叫models。大致如下。 主要目录是 __init__.py 是一个空文件,但是说明models是一个package crud.py 数据库操作相关 database.py 数据库配置相关 models.py
你可以在 FastAPI 应用中自定义几个元数据配置。 你可以设定: Title:在 OpenAPI 和自动 API 文档用户界面中作为 API 的标题/名称使用。 Description:在 OpenAPI 和自动 API 文档用户界面中用作 API 的描述。 Version:API 版本,例如 v2 或者 2.5.0。 如果你之前的应
我们可以使用APIRouter来声明路径操作,我们先看下如何简单的去使用。 from fastapi import APIRouter router=APIRouter() app = FastAPI() # 新建用户 @router.post("/users/", tags=["users"], response_model=Users) def create_user(user: UserCreate, db: Session = Depen
如果使用前后台不分离的开发方式,那么模板文件中使用的静态文件,比如css/js等文件的目录需要在后台进行配置,以便模板渲染是能正确读到这些静态文件。那么我们应该如何处理呢。 首先安装依赖 pip install aiofiles 我们看下如何使用 我们去定义一个页面,展示
我们在实际的开发中,都会遇到,我们要执行的一些任务很耗时,但是呢,对于前端呢,没必要进行等待。比如发送邮件,读取文件。我们在fastapi如何实现呢。 其实很简单,fastapi已经给我们封装好一个现成的模块,我们直接调用使用即可,非常方便。我们举一个简单例子演示
对于开发好的接口需要进行测试之后次才能发布。当我们在开发的时候,没有提测前,我们也要对我们自己的接口进行测试,那么FastAPI 自身也带了针对开发的接口的测试的。我们看下FastAPI官方给我们了什么样的支持呢。 接口还是基于FastAPI 学习之路(三十
在前面的开发中,我们在写代码的过程中呢,很多时候都是利用 uvicorn main:app --reload 来部署启动我们的服务,但是在实际的开发中,我们有时候可能需要加断点去调试我们的程序,只有加了断点,我们才能快速的开发调试我们实际遇到的问题,那么我们应该怎么加断点
在大型的web开发中,我们肯定会用到数据库操作,那么FastAPI也支持数据库的开发,你可以用 PostgreSQL MySQL SQLite Oracle 等 本文用SQLite为例。我们看下在fastapi是如何操作设计数据库的 #这个安装依赖也可以 pip install sqlalchemy #我在看到有支持异步的,我用的这个,但是这个没
通过创建pydantic模型进行验证提交数据 from pydantic import BaseModel class UserBase(BaseModel): email: str class UserCreate(UserBase): """ 请求模型验证: email: password: """ password: str class Users(UserBase): &
之前我们分享的是基于单个的数据库表的操作,我们在设计数据库的时候也设计了跨表,我们可以看下数据库的设计。 class User(Base): __tablename__ = "users" id = Column(Integer, primary_key=True, index=True) email = Column(Stri
flask、django获取第三方回调数据,可以用request.data直接获取全部参数。而很多同学不知道fastapi如何获取回调的全部参数,其实可以通过request.body()。 如: @payModules.post("/callback/wxpay",summary='微信支付回调',description="微信支付回调",tags=["支付模块"]) @version(1)
CORS 或者「跨域资源共享」 指浏览器中运行的前端拥有与后端通信的 JavaScript 代码,而后端处于与前端不同的「源」的情况。 源 源是协议(http,https)、域(myapp.com,localhost,localhost.tiangolo.com)以及端口(80、443、8080)的组合。 因此,这些都是不同的源: http://localhost
你写API接口肯定你是希望是有权限的人才能访问,没有权限的人是不能访问的,那么我们应该如何去处理呢,我们可以用的验证方式有很多,我们这次分享的是用:OAuth2来认证。那么我们看下,需要怎么才能实现呢。我们现在的接口有一部分需要用OAuth2认证后才可以访问,另一部分可以
有时,我们要为整个应用添加依赖项。通过与定义FastAPI 学习之路(二十五)路径操作装饰器依赖项 类似的方式,可以把依赖项添加至整个 FastAPI 应用。 那么我们看下,如何去实现,比如我们全局都需要校验token。我们去看下,我们应该如何实现代码。 from fastapi import
既然我们已经有了所有的安全流程,就让我们来使用 JWT 令牌和安全哈希密码让应用程序真正地安全。 关于 JWT 它是一个将 JSON 对象编码为密集且没有空格的长字符串的标准。字符串看起来像这样: eyJhbGciOiJIUzI1NiIsInR
OAuth2 规定在使用(我们打算用的)「password 流程」时,客户端/用户必须将 username 和 password 字段作为表单数据发送。我们看下在我们应该去如何实现呢。 我们写一个登录接口,默认返回token和token_type from fastapi import FastAPI, Depends,status,HTT
什么是中间件呢,"中间件"是一个函数,它在每个请求被特定的路径操作处理之前,以及在每个响应返回之前工作. 它接收你的应用程序的每一个请求. 然后它可以对这个请求做一些事情或者执行任何需要的代码. 然后它将请求传递给应用程序的其他部分 (通过某种路径操作). 然后它
系列文章: FastAPI 学习之路(一)fastapi--高性能web开发框架 FastAPI 学习之路(二) FastAPI 学习之路(三) FastAPI 学习之路(四) FastAPI 学习之路(五) FastAPI 学习之路(六)查询参数,字符串的校验 FastAPI 学习之路(七)字符串的校验 FastAPI 学习之路(
系列文章: FastAPI 学习之路(一)fastapi--高性能web开发框架 FastAPI 学习之路(二) FastAPI 学习之路(三) FastAPI 学习之路(四) FastAPI 学习之路(五) FastAPI 学习之路(六)查询参数,字符串的校验 FastAPI 学习之路(七)字符串的校验 FastAPI 学习之路(
系列文章: FastAPI 学习之路(一)fastapi--高性能web开发框架 FastAPI 学习之路(二) FastAPI 学习之路(三) FastAPI 学习之路(四) FastAPI 学习之路(五) FastAPI 学习之路(六)查询参数,字符串的校验 FastAPI 学习之路(七)字符串的校验 FastAPI 学习之路(
系列文章: FastAPI 学习之路(一)fastapi--高性能web开发框架 FastAPI 学习之路(二) FastAPI 学习之路(三) FastAPI 学习之路(四) FastAPI 学习之路(五) FastAPI 学习之路(六)查询参数,字符串的校验 FastAPI 学习之路(七)字符串的校验 FastAPI 学习之路(