首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

FastAPI - 趁手的Python API开发神器

写过API的同学都懂,这活儿可不轻松。要考虑性能、文档、类型校验,还得操心并发和扩展性。不过Python这边有个叫 FastAPI 的新玩意儿,用起来是真爽!它把所有这些烦心事都给解决了。

装个FastAPI贼简单,pip一条命令就搞定:

pip install fastapi uvicorn

装完就能用!让咱整个最基础的API试试水:

from fastapi import FastAPI

app = FastAPI()

@app.get(“/”)

def hello_world():

return {“message”:“你好啊,朋友!”}

运行这段代码:

uvicorn main:app --reload

浏览器访问 http://localhost:8000,看到JSON格式的问候信息,这就整好了!

温馨提示:别忘了装uvicorn,它是个超棒的ASGI服务器,FastAPI离了它可不行。

FastAPI跟Python的类型提示是好哥们,写代码舒服得很:

from fastapi import FastAPI

from pydantic import BaseModel

class User(BaseModel):

name:str

age:int

is_cool:bool = True

app = FastAPI()

@app.post(“/users/”)

def create_user(user:User):

return user

瞧见没?写个API接口就跟写普通Python代码一样自然。参数类型都标注好了,FastAPI自动帮你做参数校验,省心!

别的框架写完API还得专门去写文档,FastAPI直接给你整出来:

@app.get(“/items/{item_id}”)

def read_item(item_id:int, q:str = None):

“”“

获取商品信息

- item_id:商品ID

- q:搜索关键词

”“”

return {“item_id”:item_id, “q”:q}

访问 /docs 路径,漂亮的Swagger文档就出来了!还能直接在线调试,这待遇也太好了。

现在都讲究高并发,FastAPI原生支持异步编程:

@app.get(“/async-items/”)

async def read_items():

items = await database.fetch_all(“SELECT * FROM items”)

return items

写异步代码就这么简单,FastAPI帮你处理好了全部细节。性能杠杠的!

要是想在多个接口之间共享代码,依赖注入系统简直不要太方便:

from fastapi import Depends

def get_current_user(token:str):

# 验证token的逻辑

@app.get(“/me”)

def read_me(current_user = Depends(get_current_user)):

return current_user

代码复用不用愁,模块化开发轻松搞定。

温馨提示:依赖函数可以是普通函数,也可以是异步函数,FastAPI都能处理。

Python的世界里框架是真不少,但FastAPI属实让人眼前一亮。性能好、写起来舒服、文档齐全,关键是跟Python的新特性结合得特别紧密。要是你也在写API,不妨试试这个宝贝,准能让你coding效率飙升!

  • 发表于:
  • 原文链接https://page.om.qq.com/page/OodeR-23gyJnG2ICz88qaWoA0
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券