FastAPI
Python异步Web框架FastAPI笔记
wgPython
个人网站:https://www.charmcode.cn/ 对个人输出内容负责
展开
-
【FastAPI 学习十二】定时任务篇 (移步博客园或个人网站 无广告,界面清爽整洁)
声明目前个人放弃CSDN平台,文章只发布于个人网站和博客园博客园地址【FastAPI 学习十二】定时任务篇原创 2020-12-25 22:51:53 · 940 阅读 · 1 评论 -
【FastAPI 十一项目生成器】 项目目录结构demo(自己改版)
FastAPI和MySql项目生成器,使用sqlalchemy ORM。之前呢使用FastAPI是为了配合学习Vue,尝试性写的API服务接口,后面放到Github上面,感觉代码写的很烂,没想到我关于FastAPI的项目有40多个老哥点star,还有几位老哥issue给出建议,或者咨询我FastAPI的问题,都表示这方面的资料很少,所以我感觉自己有必要写这么一个项目,帮助大家更好的学习FastAPI。以下是我在GitHub托管的 fastapi-mysql-generator FastAPI项目生成原创 2020-10-16 17:34:06 · 2384 阅读 · 1 评论 -
FastAPI WebSocket 基本使用二 分组发送Json数据
FastAPI WebSocket 分组发送Json数据用户1和 用户2 可以互相发送私信消息用户1 2 3之间相当于一个群,可以发送广播消息效果代码FastAPI 服务端代码#!/usr/bin/env python# -*- coding: utf-8 -*-# @Time : 2020/8/19 13:38# @Author : CoderCharm# @File : main.py# @Software: PyCharm# @Github : g原创 2020-08-24 13:21:01 · 1406 阅读 · 0 评论 -
FastAPI WebSocket 简单演示 一
FastAPI WebSocket 简单演示下午没事看了看WebSocket,感觉这个听好玩的,比写CRUD有意思。就复制了官网的demo演示看了看。官方文档效果原创 2020-08-20 00:18:45 · 2805 阅读 · 0 评论 -
【FastAPI后台API 十】使用Redis
在FastAPI中 使用Redis本来是想直接使用redsi的, 但是查阅资料都是使用aioredis, 所谓一步异步就得处处异步FastAPI官网关于异步的解释描述 https://fastapi.tiangolo.com/async/建议要使用FastAPI的人,都看看作者关于异步的描述思路把redis_cli对象挂载到FastAPI app 对象上面,然后在视图函数中使用默认的回调参数request对象获取参考链接https://github.com/tiangolo/fastapi原创 2020-07-29 16:42:45 · 9052 阅读 · 10 评论 -
【FastAPI后台API 九】图片文件上传
图片文件上传接收上传图片字节流数据,本地保存这个就没什么难度了,照着官网来就行了。有一点要主注意,文档看仔细。文档地址安装依赖pip install python-multipart代码import osimport shutilfrom pathlib import Pathfrom typing import Union, Anyfrom tempfile import NamedTemporaryFilefrom fastapi import APIRouter, Dep原创 2020-07-28 23:57:39 · 5102 阅读 · 0 评论 -
【FastAPI后台API 八】JWT token认证登陆
JWT token认证登陆前一篇博客讲述了获取和验证请求参数, 这一篇就实践下,演示一个最基础的JWT认证,我公司是用了两个token方式验证,一个请求token,一个刷新token,请求token过期时间短,专门用于请求数据,刷新token专门用于刷新过期请求token用的。jwt官网 https://jwt.io/如果还有不懂JWT的,就需要好好看看JWT的知识了,JWT认证目前是前后端分离中非常流行的一种认证方式: 由三段组成 第一段通常是加密算法,第二段是你存储的自定义信息(未加密任何人原创 2020-07-23 21:40:04 · 8879 阅读 · 5 评论 -
【FastAPI后台API 七】GET和POST请求参数接收以及验证
FastAPI http请求参数的接收我最开始接触FastAPI的时候,最搞不懂的就是POST方式是如何接收参数的。GET方式的参数GET方式的参数有两种,一种是路径参数,一种是查询参数。举个例子来说明两者的区别路径参数 官方文档 https://fastapi.tiangolo.com/tutorial/path-params/from fastapi import FastAPIapp = FastAPI()@app.get("/items/{item_id}")async原创 2020-07-22 23:55:04 · 52153 阅读 · 3 评论 -
【FastAPI后台API 六】异常处理
异常处理统一捕获处理异常,使得代码更加完善,健壮。框架内置了一些异常,当然也可以自己定义异常然后捕获处理。完全可以参考官网(超喜欢这种风格的文档):https://fastapi.tiangolo.com/tutorial/handling-errors/异常捕获在FastAPI中,最常见的就是请求参数验证异常处理,因为FastAPI全面使用了`pydantic`来做数据类型校验,所以最常见的异常就是`ValidationError` , 然后FastAPI继承了这个错误,专门捕获原创 2020-07-15 22:07:47 · 2920 阅读 · 0 评论 -
【FastAPI后台API 五】统一响应json数据格式
统一响应json数据格式现在了很多项目,都是前后端分离的项目,所以了前后端都会约定传输的数据格式,以及响应提醒。响应json格式现在应该都是使用的json交互了,应该没有使用xml的吧?一般了响应json格式是由以下三个字段组成。{ "code": 200, // 统一成功状态码 前后端约定 有的是0 有的是20000 "data": xxx, // 可以是任意类型数据 有接口文档对接 "message": "success" // 消息提示,是状态码的简要补充说明}前端一般原创 2020-07-15 22:04:43 · 5435 阅读 · 3 评论 -
【FastAPI后台API 四】 FastAPI 日志配置
FastAPI 中日志的配置本系列博客是配合Vue开发一套后台管理系统,对应的Vue教程见个人博客https://www.charmcode.cn/在Python中内置了logging模块, 但是配置有丢丢麻烦。于是有人开发了这样的一个日志扩展库loguru我很喜话它 Github地址 https://github.com/Delgan/loguruloguru 使用自己看官网http://loguru.readthedocs.io/或者GitHub README.md的演示,基本就够了原创 2020-07-12 17:05:57 · 7682 阅读 · 0 评论 -
【FastAPI后台API 三】 FastAPI SqlAlchemy MySql表迁移
FastAPI SqlAlchemy MySql表迁移FastAPI项目官网是直接使用的SqlAlchemy ORM,不像Flask,一般使用Flask-SqlAlchemy扩展,习惯了flask扩展的,没使用 SqlAlchemy,虽然大体上很像,但是有些地方还是不一样的。SqlAlchemy官方本身就是使用alembic实现表迁移的,所以现在直接用这个。官网 https://alembic.sqlalchemy.org/en/latest/alembic 初始化先安装alembicpip原创 2020-07-12 16:41:45 · 6112 阅读 · 2 评论 -
【FastAPI后台API 二】SqlAlchemy Model模型类
FastAPI SqlAlchemy ORM ModelFastAPI 使用 SqlAlchemy创建models文件目录| |____db // 数据库文件夹| | |______init__.py| | |____session.py // 创建 SessionLocal 对象| | |____base_class.py // model基础模块 如通用字段| | |____base.py原创 2020-07-11 19:22:03 · 2099 阅读 · 0 评论 -
【FastAPI后台API 一】配置文件(移步博客园或个人网站)
FastAPI 配置文件配置文件目录|____core // 项目存放一些重要的文件| |______init__.py| |____config // 配置文件夹| | |______init__.py // 根据虚拟环境导入不同配置| | |____development_config.py // 开发配置| | |____production_config.py //原创 2020-07-11 17:32:50 · 3315 阅读 · 1 评论 -
FastAPI 项目结构组织,工厂模式创建
FastAPI 项目结构组织,工厂模式创建前言学习Vue的时候,需要接口,而我恰巧也学习了下FastAPI,正好个人项目,试一下这个FastAPI框架。然而 现在关于FastAPI,搜索资料基本都是官网翻译一下,要么就是官方推荐的全栈项目生成https://github.com/tiangolo/full-stack-fastapi-postgresql, 对我目前的需求而言,太大了,而且全程用docker,对我这个初学FastAPI的新手来说很不友好。于是我自己花了点时间, 详细看了一遍文档。原创 2020-06-24 17:28:39 · 3012 阅读 · 1 评论