随笔分类 - python
摘要:在之前三篇,我们分享的就是需求的分析,基本接口的整理,数据库链接的配置。这次我们分享项目的基本框架,目录结构如下: common目录 通用的目录,一些通用的处理放在这里 models目录 数据库相关的放在这里 routers目录 所有的接口存放的地方 test 测试用例存放的地方 config.py
阅读全文
摘要:我们首先需要安装对应的连接的依赖 pip install pymysql 然后在配置testDatabase.py from sqlalchemy import create_engine from sqlalchemy.ext.declarative import declarative_base
阅读全文
摘要:我们要搭建日志系统,我们使用loguru,挺不错的一个开源的日志系统。可以使用 pip install loguru 我们在common创建log.py使用方式也很简单 import os import time from loguru import logger #日志的路径 log_path =
阅读全文
摘要:我们需要安装对应的连接的依赖 pip install pymysql 然后在配置testDatabase.py from sqlalchemy import create_engine from sqlalchemy.ext.declarative import declarative_base f
阅读全文
摘要:这之前的接口,我们返回的格式都是每个接口异常返回的数据格式都会不一样,我们处理起来没有那么方便,我们可以封装一个统一的json处理。 那么我们看下如何来实现呢 from fastapi import status from fastapi.responses import JSONResponse,
阅读全文
摘要:我们之前登录认证的一些内容都直接写入到代码中,我们现在统一的给放到config文件中。 SECRET_KEY = "09d25e094faa6ca2556c818166b7a9563b93f7099f6f0f4caa6cf63b88e8d3e7" ALGORITHM = "HS256" ACCESS
阅读全文
摘要:在之前的分享的中,产生了token,用于做登录的认证,那么产生了token后,登陆携带了token,我们如何校验呢? 我们先来梳理下逻辑。 1.调用登录接口,产生token 2.调用依赖登录的接口,在请求头中携带token 3.依赖登录的接口,接受到请求,判断是否在headers中携带token 4
阅读全文
摘要:在之前的文章中,FastAPI 学习之路(二十九)使用(哈希)密码和 JWT Bearer 令牌的 OAuth2,FastAPI 学习之路(二十八)使用密码和 Bearer 的简单 OAuth2,FastAPI 学习之路(三十四)数据库多表操作,我们分享了基于jwt认证token和基于数据库创建用户
阅读全文
摘要:之前我们分享了操作关系型数据库,具体文章, FastAPI 学习之路(三十二)创建数据库 FastAPI 学习之路(三十三)操作数据库 FastAPI 学习之路(三十四)数据库多表操作 这次我们分享的是非关系型数据库--Redis。 首先,我们安装对应的依赖 pip intsall aioredis
阅读全文
摘要:我们在实际的开发中呢,总会遇到这样的场景,我们想在启动或者终止的时候,做一些事情,那么应该如何实现呢,其实也是很简单。fastapi提供了这样的操作。 那么我们看下具体是怎么实现的呢 app = FastAPI() @app.on_event("startup") def startup_event
阅读全文
摘要:在实际的开发过程中,我们数据库,可以根据连接的环境不一样,我们会拆分成不一样的数据库,根据我们所要用的环境来选择对应的数据库即可,那么我们应该如何去实现根据选择去选择不一样的数据库呢。 首先,我们找一个配置的文件,我们这里演示 我们使用config.py去配置环境。配置如下 EVENT="test"
阅读全文
摘要:相对于之前的text的消息来说,我们之前发送的消息都是text的居多,那么对于text格式的消息来说,我们处理起来,尤其是后端要麻烦的多,那么我们可不可以传递json格式的,对于前后端来说都好处理的一种格式的消息,那么答案来说是可以的。我们需要做下处理。 我们在之前的websockets管理中的的消
阅读全文
摘要:有了上一遍的基础,其实这个一对一很简单,我们在之前的websockets管理中已经实现了一对一发消息的内容,这次呢,我们只需要实现一对一如何处理消息即可。 @app.websocket("/ws/{user}/") async def websocket_many_point( websocket:
阅读全文
摘要:其实代码没有问题,但是我们忽略了一点,就是我们在正常的开发中,肯定是遇到这样的情况,我们频繁的有客户端链接,断开链接,我们需要统一的管理起来,那么我们应该如何去管理呢,其实这个时候,我们要去声明一个类去管理我们的这些链接。我们应该如何优化呢。 定义一个链接管理类,处理我们所有的链接。 class C
阅读全文
摘要:本次是WebSockets的第六次分享了,我们这次只是对于之前的功能做下优化,顺便利用下之前的操作数据的接口,使用下数据库的练习。 我们都知道,在聊天室里面会有一个上线的概念。上线了要通知大家。然后下线了要告诉大家谁离开了。发小小大家要都能可以收到。那么我们基于这个去完善下我们的功能。 首先,我们的
阅读全文
摘要:在我们测试中,肯定会对接口进行测试。之前也分享过FastAPI 学习之路(三十八)对开发接口进行测试,那么我们针对WebSockets接口怎么测试呢。 其实很简单。 from fastapi.testclient import TestClient def test_websocket(): cli
阅读全文
摘要:之前我们是通过前端自动生成的,这次我们通过注册登录,保存到本地去实现。我们可以应该如何实现呢,首先我们实现一个登录界面。放在templates文件下。 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Titl
阅读全文
摘要:上一篇文章,我们分享了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
阅读全文