摘要:
一、前言 容器使用沙箱机制,互相隔离,优势在于让各个部署在容器的里的应用互不影响,独立运行,提供更高的安全性。本文主要介绍python应用(django)跑在docker容器里,编写dockerfile实现镜像构建自动化以及docker神器compose。 二、编写Dockerfile文件 官网下载 阅读全文
摘要:
前言:python由于GIL(全局锁)的存在,不能发挥多核的优势,其性能一直饱受诟病。然而在IO密集型的网络编程里,异步处理比同步处理能提升成百上千倍的效率,弥补了python性能方面的短板,如最新的微服务框架japronto,resquests per second可达百万级。 python还有一 阅读全文
摘要:
一、前言 sqlalchemy2.0及2.0+ 版本出的很多新特性,和之前的使用方法不太一样,并且删除了大部分已弃用的元素,将剩余的元素(主要是Query)降级为长期“遗留”状态。 官方文档:点此链接 二、配置SQLALchemy 1、创建一个 plugin/plugin_sqlalchemy.py 阅读全文
摘要:
一、可迭代对象、迭代器、生成器 的区别 可迭代对象:只要实现 __ iter __ 方法或者实现 __ getitem __方法而且其参数从0开始索引,那么该对象就是可迭代对象。可以用 for 循环遍历,常见的有string,list,tuple,dict,set。 迭代器: 实现了__ iter 阅读全文
摘要:
HTTPException是FastAPI中用于处理HTTP错误的异常类。HTTPException 是一个非常有用的异常类,用于当HTTP请求处理过程中遇到错误时,能够优雅地返回HTTP错误响应给客户端。通过抛出 HTTPException,你可以控制返回给客户端的HTTP状态码和响应体,使得客户 阅读全文
摘要:
一、介绍 FastAPI中的中间件(Middleware)是一个非常重要的概念,它允许开发者在请求被处理之前和响应被发送之前执行自定义逻辑。中间件在Web应用程序中扮演着桥梁的角色,连接着客户端的请求和服务器端的响应处理过程。以下是FastAPI中间件概念的详细解释: 1. 中间件的定义 在Fast 阅读全文
摘要:
问题描述 在前后端开发中遇到一个问题,前端发送请求后,后端报 'OPTIONS /mock/user/login HTTP/1.1' 405 Method Not Allowed,如下图: 但用fastapi自带的swagger或postman测试又是可以的。 定位原因 这是因为在跨域的情况下,在浏 阅读全文
摘要:
JWT 和 Session 的区别: JWT:JWT是一种无状态的认证机制。由于JWT令牌包含了用户的身份信息以及相关的元数据,服务端不需要存储任何用户状态信息,只需要验证JWT令牌的真实性和有效性即可。这使得JWT非常适合于构建无状态的分布式系统,因为JWT令牌可以在不同的服务之间轻松共享。 Se 阅读全文
摘要:
一、简介 fastapi 常见的orm框架有以下几种: SQLAlchemy:这个比较常见,之前用flask开发web框架也用的SQLAlchemy。 SQLModel:网上说是最适合fastapi的orm框架,官方也推荐这个,后续应该会发展不错,目前没有去踩坑。 tortoise-orm:djan 阅读全文
摘要:
前言 开发一个应用程序或API,不会将所有的代码都放到main.py文件中。Flask 使用蓝图(BluePrint)来管理路由,FastAPI 提供了一个类似的工具APIRouter。 路由管理 1、fastapi 项目目录层级 2、api/cms/user.py 定义 API 路由和处理函数。实 阅读全文
摘要:
fastapi是一个高性能异步web框架,并且支持websocket协议。这是一个比较新的框架,但github上的Star数挺多,快追上flask了。 1、websocket服务端的简单实现: 定义一个websocket API和 http 类似,使用@app.websockert装饰器,参数为路由 阅读全文
摘要:
目前从flask框架转fastapi,之前flask框架日志很好用。这次学习了fastapi的日志使用,第一种是自定义日志,这个不讲了,自己封装就好,第二种是使用uvicorn自带日志。 一、配置输出格式化 uvicorn 其实已经有日志,只是没有格式化输出,我们希望可以加点东西丰富输出。 找到 u 阅读全文