FastApi+mysql快速搭建web后端接口框架项目
FastApi+mysql 快速搭建web后端接口框架
项目地址:
https://github.com/zhongzhongBaby/FastapiMysqlDemo
项目描述:
最近从java转来学习FastApi,想要快速搭建一个FastApi+mysql的后端接口框架,但是网上没有找到demo,所以自己简单写了一个,做了一些简单的封装,希望对和我一样的新学者有所帮助。
功能涵盖:
1.使用数据源访问mysql
2.实现中文api文档
3.请求参数数据验证
4.使用jwt实现Token登录验证
5.不同环境(生产、测试),配置环境参数
1.数据源访问工具类
1 | import pymysql |
2.api文档实现效果
3.请求参数数据验证
1 | //使用pydantic.Field方法数据验证 |
以上是对参数的基本校验,如:参数类型,是否必传,参数长度等。
如果需要进行更多自定义的校验可以使用pydantic.@validator。
4.使用jwt实现Token登录验证
1 | from datetime import datetime, timedelta |
访问login接口,登录成功,可以返回token密文
1 | { |
之后在访问其他需要登录验证的接口的时候,只需要在接口请求header上添加token密文参数
1 | Authorization :Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJBZG1pbiIsImV4cCI6MTU4NzgwNTcxMH0.qwahQ22GaMGOpoE_xHr_Dg-i8VjO1bwEl2uJSz1ry6U |
设置接口登录验证只需要在接口方法上添加参数:
current_user: User = Depends(get_current_active_user)
1 | async def find_course_selective(current_user: User = Depends(get_current_active_user), |
5.不同环境(生产、测试),配置环境参数
新建几个环境参数文件:prod.env,test.env
1 | from pydantic import BaseSettings |
@lru_cache()目的:因为环境参数要从文件中读取,这样存于内存可以避免IO次数。
使用:
1 | import config |
项目启动
1 | - 项目启动 |
Original author: Geng
Original link: https://zhongzhongbaby.github.io/2020/03/30/FastApi-mysql快速搭建web后端接口框架项目/
Copyright Notice: Please indicate the source of the reprint (must retain the author's signature and link)