Python Web框架:FastAPI

一:简介

FastAPI https://fastapi.org.cn/ 是一个现代、快速(高性能)的 Web 框架,用于基于标准 Python 类型提示构建 API。

教程:https://fastapi.org.cn/tutorial/

shell 复制代码
pip install fastapi

二:示例

python 复制代码
import os
import json
import logging
from typing import Any
from pydantic import BaseMode
from fastapi import FastAPI
from fastapi.responses import FileResponse, JSONResponse
from fastapi.staticfiles import StaticFiles


logging.basicconfig(
	level=logging.INFo,
	format="%(asctime)s - %(levelname)s - [%(filename)s:%(lineno)d] - %(message)s"
)	

app = FastAPI(title="标题")
app.mount("/static", StaticFiles(directory="static", name="static"))

class ApiResponse(BaseModel):
	code: int
	message: str
	data: Any

# 全局异常处理器
@app.exception_handler(Exception)
def handle_exception(request: Request, exe: Exception):
	logging.error(f"异常处理,请求路径 {request.url}, 捕获到异常 {exe}")
	return JSONResponse(content={"code": 500, "message"="服务器内部错误,请联系管理员", data: None})

@app.get("/")
def root():
	logging.info("首页")
	return FileResponse("static/index.html")

@app.get("/api/user")
def get_user(request: int) -> ApiResponse:
	user = {"id": 1, "username": "melong"}
	return ApiResponse(200, "ok", user)

@app.post("/api/user")
def add_user():
	pass

@app.delete("/api/user")
def del_user(id: int):
	pass

if __name__ == "__main__":
import uvicorn
  uvicorn.run(app, host="127.0.0.1", port=8000)

三:运行

方式一

python 复制代码
pip install "fastapi[standard]"
fastapi dev "xxx.py"

方式二

python 复制代码
uvicorn xxx:app --reload

方式三(推荐)

uvicorn是Python中轻量的web服务器

python 复制代码
import uvicorn
uvicorn.run(app, host="127.0.0.1", port=8000)
相关推荐
程序员黑豆13 小时前
鸿蒙应用开发之V2状态管理:@Local、@ObservedV2、@Trace 使用教程
前端·后端·harmonyos
锻炼²13 小时前
Edge 地址栏搜索被其他浏览器劫持
前端·edge
Slice_cy14 小时前
Mint 自研框架设计与实现:从重复开发走向配置驱动(三)
前端·后端·架构
JoyT14 小时前
Nuxt 3的核心设计与静态官网应用
前端·javascript·vue.js
程序员黑豆14 小时前
鸿蒙应用开发之@State 装饰器详解:从基本类型到 @Observed/@ObjectLink/@Track 嵌套监听
前端·harmonyos
杉氧14 小时前
Flutter 像素级还原实战:用 CustomPaint 与 Bezier 曲线手绘精致图针
android·前端·flutter
min(a,b)14 小时前
学习第 6 天:类型注解、装饰器与高级特性
python·学习
兮动人14 小时前
Python字符串类型
开发语言·python·python字符串类型
码云骑士15 小时前
80-指令微调Instruction-Tuning-指令数据构造-多任务训练-过拟合检测
python
金融小白数据分析之路15 小时前
绍兴市镇街echarts 制作
前端·数据库·echarts