在线文档

FastAPI在线文档

工程结构


说明:

  1. main.py是程序的入口
  2. routers里面存放了不同的实现

依赖库的安装

  1. pip install openpyxl
  2. pip install fastapi
  3. pip install "uvicorn[standard]"

源代码文件

main.py

from fastapi import FastAPIfrom app.routers import users, securityapp = FastAPI()app.include_router(users.router, prefix='/api')
app.include_router(security.router, prefix='/api')

users.py

from typing import Optional
import datetimefrom fastapi import APIRouter
from fastapi import Body, Formrouter = APIRouter()@router.get("/user/", tags=["users"])
async def get_user(id: str, name: Optional[str] = None):return {"id": id, "name": name, "time": datetime.datetime.now().isoformat(), "method": "get"}#通过path key的形式传递id, name, sex, age
@router.post("/user2/", tags=["users"])
async def post_user(id: str, name: str, sex: str, age: int):return {"id": id, "name": name, "sex": sex, "age": age, "time": datetime.datetime.now().isoformat(),"method": "post"}#通过body的JSON的形式传递id,name, sex age
@router.post("/user/", tags=["users"])
async def post_user(id: str = Body(embed=True, description="user identity", min_length=5, max_length=18),name: str = Body(embed=True, description="user name", min_length=5, max_length=30),sex: str = Body(embed=True, description="sex", min_length=1, max_length=1),age: int = Body(embed=True, description="user age", ge=0, le=120)
):return {"id": id, "name": name, "sex": sex, "age": age, "time": datetime.datetime.now().isoformat(),"method": "pass value by josn in body"}@router.put("/user/", tags=["users"])
async def put_user(id: str = Body(embed=True, description="user identity", min_length=5, max_length=18),name: str = Body(embed=True, description="user name", min_length=5, max_length=30),sex: str = Body(embed=True, description="sex", min_length=1, max_length=1),age: int = Body(embed=True, description="user age", ge=0, le=120)
):return {"id": id, "name": name, "sex": sex, "age": age, "time": datetime.datetime.now().isoformat(),"method": "modify user by passing value by josn in body"}#以form-data的形式传值
@router.delete("/user/", tags=["users"])
async def delete_user(id: str = Form(min_length=5, max_length=18)):return {"id": id, "method": f"{id}has been removed", "time": datetime.datetime.now().isoformat()}

security.py

import datetime
import osfrom typing import Optional
from fastapi import APIRouter
from fastapi import Body, Formimport openpyxlrouter = APIRouter()@router.get("/security/", tags=['security'])
async def get_security(exchange: Optional[str] = "XHKG"):try:if exchange == "XHKG":data = []index = 0wb = openpyxl.load_workbook("app/routers/SecurityList_hk.xlsx")sheet = wb['ListOfSecurities']row = list(sheet.rows)for r in row[3:]:try:if r[0].value is None:continueindex += 1security_type = r[2].valueif security_type == "股本":security_type = "stock"elif security_type == "債券":security_type = "bond"else:security_type = "N/A"data.append({"code": r[0].value,"exchange_code": "XHKG","security_code": r[0].value + ".XHKG","type": security_type,"type_name": r[2].value,"name": r[1].value,"abbr_name": "","english_name": "","ISIN": r[6].value,"list_date": None,"delist_date": None,"uplimited_ratio": 0,"downlimited_ratio": 0})except Exception as ee:data = {"message": ee}wb.close()return dataelse:return {"message": f"the{exchange}exchange could not be supported."}except Exception as ee:return {"message": ee}

运行

在命令行进入到FastAPI_Demo,执行uvicorn app.main:app --reload即可看到:

查阅demo的文档

在浏览器输入http://localhost:8000/docs即可打开与demo相关的api文档,由fastapi自动生成的

FastAPI简单示例相关推荐

  1. python文本处理实例_Python 文件处理的简单示例

    这篇文章主要为大家详细介绍了Python 文件处理的简单示例,具有一定的参考价值,可以用来参考一下. 对python这个高级语言感兴趣的小伙伴,下面一起跟随512笔记的小编两巴掌来看看吧! 相关的AP ...

  2. python获取mac、计算机id_python 获取本机IP、mac地址、计算机名的简单示例

    这篇文章主要为大家详细介绍了python 获取本机IP.mac地址.计算机名的简单示例,具有一定的参考价值,可以用来参考一下. 对python获取本机IP.mac地址.计算机名感兴趣的小伙伴,下面一起 ...

  3. python简单单元测试示范卷_Python 单元测试的简单示例

    这篇文章主要为大家详细介绍了Python 单元测试的简单示例,具有一定的参考价值,可以用来参考一下. 对python这个高级语言感兴趣的小伙伴,下面一起跟随512笔记的小编两巴掌来看看吧! 以前我是不 ...

  4. python二分法求解_Python使用二分法求平方根的简单示例

    这篇文章主要为大家详细介绍了Python使用二分法求平方根的简单示例,具有一定的参考价值,可以用来参考一下. 对python这个高级语言感兴趣的小伙伴,下面一起跟随512笔记的小编两巴掌来看看吧! 使 ...

  5. Unity 简单示例代码和向导/Unity Aplication Block

    Unity 简单示例代码和向导 关于Unity 的说明和下载地址,请访问[微软控制反转和依赖注入容器Unity 1.0发布] http://forum.entlib.com/Default.aspx? ...

  6. php定时刷新token,PHP 定时任务获取微信access_token的简单示例

    搜索热词 感兴趣PHP 定时任务获取微信access_token的简单示例的小伙伴,下面一起跟随编程之家 jb51.cc的小编来看看吧. 最近开发微信公众平台,公众号调用各接口时都需使用access_ ...

  7. python 搭建的http 动态服务器_Python 创建HTTP服务器的简单示例

    这篇文章主要为大家详细介绍了Python 创建HTTP服务器的简单示例,具有一定的参考价值,可以用来参考一下. 对python这个高级语言感兴趣的小伙伴,下面一起跟随512笔记的小编两巴掌来看看吧! ...

  8. python简单装饰器_python装饰器的简单示例

    这篇文章主要为大家详细介绍了python装饰器的简单示例,具有一定的参考价值,可以用来参考一下. 对python这个高级语言感兴趣的小伙伴,下面一起跟随512笔记的小编两巴掌来看看吧! 装饰器的语法以 ...

  9. javascript worker 多线程 简单示例

    javascript worker 多线程 简单示例 项目结构 主线程 index.html <!DOCTYPE html> <html lang="en"> ...

最新文章

  1. python与R行列数据过滤(row column filtering):dplyr、 isnull、isna、drop、select、iloc、loc、isin、filter
  2. 解决ubuntu下无线网络不可用
  3. 攻打医院服务器的SamSam勒索木马分析
  4. Pandas0.25来了,别错过这10大好用的新功能
  5. 注入eval,Function等系统函数,截获动态代码
  6. php显示前60个字,DEDECMS中怎么让文章标题栏突破60个字符
  7. eclipse显示行号和Tab、空格、回车
  8. 谷歌开源Embedding可视化工具
  9. python模块--subprocess
  10. Python3 输入和输出(一)
  11. Linux局域网传输文件
  12. 京东商城在售食品不合格被通报 律师:平台应承担责任
  13. coldfusion_ColdFusion中的数据结构简介
  14. java中判断一个单词是否以a开头_查找Java中所有以'a'开头的单词
  15. ASAN和HWASAN原理解析
  16. Android MotionLayout As a Dancer
  17. 【大咖说|中国工程院院士江亿】:有序充电桩系统可破解电动车充电难题
  18. Windows下wafw00f的安装
  19. 三线制PT100温度变送器
  20. 浅谈Ble-Mesh的LPN模式

热门文章

  1. 贵州兴义电大学计算机培训,黔西南州机电职业技术学校
  2. Oracle 数据库
  3. pstack 安装linux_linux下的进程堆栈查看工具pstack
  4. 微信公众号的封面图怎么拿到手
  5. 最全的Windows7 服务优化、详解。
  6. 人生历程中的几个观念瓶颈
  7. [GO] Gin入门
  8. 计算机所有以太网适配的ip,演示win10电脑以太网没有有效的ip配置
  9. 夏侯王朝 - (前言)
  10. DxO Analyzer的基本操作