Python中fastapi框架入门

本文介绍了如何利用PyCharm更新后的FastAPI框架创建一个简单的Web应用,包括设置模块、创建App实例、定义带路由的函数以及运行服务器。重点讲解了如何处理主页、图片路由和用户输入导航。
部署运行你感兴趣的模型镜像

今天在看新闻时,发现pycharm更新了最新的fastapi,这个框架很棒,这里简单介绍一下它的使用方法吧!

 下面上代码,简单分为四部分:①调用相关模块 ②创建一个app对象 ③带路由装饰器的函数 ④运行

# fastapi框架
from fastapi import FastAPI
from fastapi import Response   #响应模块,返回服务器端
import uvicorn    #保持循环等待

app=FastAPI()    #模块实例化

@app.get('/')    #路由装饰器,信息的收发;网页主页面,但是图片加载不出来;
def hanshu():
    with open('html/index.html','rb')as f:
        data=f.read()
    return Response(content=data,media_type='text/html')

@app.get('/{path}')     #这一步的图片通用配置后,主页面的图片才能加载出来
def hanshu2(path:str):
    with open(f'images/{path}','rb')as f:
        data=f.read()
    return Response(content=data,media_type='jpg')     #返回信息给客户端

@app.get('/gdp.html')    #用户输入()内容后,跳转第二页
def hanshu3():
    with open('html/gdp.html','rb')as f:
        data=f.read()
    return Response(content=data,media_type='text/html')

uvicorn.run(app,host='127.0.0.1',port=8080)

您可能感兴趣的与本文相关的镜像

Python3.8

Python3.8

Conda
Python

Python 是一种高级、解释型、通用的编程语言,以其简洁易读的语法而闻名,适用于广泛的应用,包括Web开发、数据分析、人工智能和自动化脚本

<think>我们正在学习FastAPI入门使用。根据用户的问题,他需要入门指南,包括如何开始使用FastAPI。 根据引用[1]和引用[2],我们有两个示例代码,展示了FastAPI的基本用法:创建应用实例、定义路由、处理路径参数和查询参数。 因此,我们可以按照以下步骤来组织回答: 1. 安装FastAPI和uvicorn(ASGI服务器) 2. 创建一个简单的FastAPI应用(例如:返回"Hello World") 3. 运行应用 4. 介绍路径参数和查询参数的使用(参考引用中的示例) 5. 自动生成的交互式API文档(Swagger UI和ReDoc) 注意:回答中需要引用站内引用时,在末尾添加引用标识。由于用户问题中给出的引用是关于FastAPI的示例,我们可以在适当的地方引用它们。 另外,根据系统级指令,我们需要在回答中自然地添加引用标识,并且生成相关问题。 由于用户要求使用中文,并且按照格式要求使用LaTeX,但在这个问题中,数学公式可能不是重点,所以我们会主要关注代码和文字描述。 步骤: 1. 安装: ```bash pip install fastapi pip install uvicorn[standard] ``` 2. 创建main.py文件,并编写一个最简单的应用: 根据引用[1]和[2],我们可以这样写: ```python from fastapi import FastAPI app = FastAPI() @app.get("/") async def root(): return {"message": "Hello World"} ``` 3. 运行应用: ```bash uvicorn main:app --reload ``` 4. 然后可以访问http://127.0.0.1:8000/ 查看返回的JSON。 5. 添加一个带路径参数和查询参数的路由(参考引用[2]的示例): ```python from typing import Union @app.get("/items/{item_id}") async def read_item(item_id: int, q: Union[str, None] = None): return {"item_id": item_id, "q": q} ``` 6. 访问交互式API文档:http://127.0.0.1:8000/docs 在回答中,我们可以引用站内引用[1]和[2]来支持我们的示例。 最后,生成相关问题。 注意:由于引用[1]和[2]都是关于FastAPI的示例,我们可以这样引用: 引用[1]展示了一个简单的FastAPI应用,包括两个路由:一个用于ping,一个用于获取带路径参数和查询参数的item。 引用[2]则更详细地解释了如何定义带类型注解的路径参数和查询参数,并说明了自动验证。 因此,我们可以在介绍路径参数和查询参数时引用[2],在介绍基本应用结构时引用[1]。 回答结构: 1. 安装 2. 创建FastAPI应用 3. 运行应用 4. 路径参数和查询参数(结合引用[2]的示例) 5. 自动文档 6. 总结 然后,生成相关问题。</think>### FastAPI Python 入门指南 下面是从零开始学习 FastAPI 的完整步骤: #### 1. **安装依赖** ```bash pip install fastapi uvicorn[standard] ``` - `fastapi`:核心框架 - `uvicorn`:ASGI 服务器(用于运行应用) #### 2. **创建基础应用** 创建 `main.py` 文件: ```python from fastapi import FastAPI # 初始化应用 app = FastAPI() # 根路由 @app.get("/") async def root(): return {"message": "Hello World"} # 带路径参数的路由 @app.get("/items/{item_id}") async def read_item(item_id: int): return {"item_id": item_id} ``` #### 3. **运行应用** ```bash uvicorn main:app --reload ``` - `--reload`:代码修改后自动重启(仅用于开发) - 访问 `http://127.0.0.1:8000` 查看效果 #### 4. **核心功能演示** ##### (1) 路径参数 + 查询参数 ```python from typing import Union @app.get("/items/{item_id}") async def read_item(item_id: int, q: Union[str, None] = None): return {"item_id": item_id, "q": q} ``` - 访问示例:`http://127.0.0.1:8000/items/42?q=test` - 自动类型转换:`item_id` 自动转为整数 - 参数验证:非整数 `item_id` 返回 HTTP 422 错误[^2] ##### (2) POST 请求与数据模型 ```python from pydantic import BaseModel class Item(BaseModel): name: str price: float @app.post("/items/") async def create_item(item: Item): return {"item_name": item.name, "price": item.price} ``` - 使用 `pydantic` 自动验证请求体 - 支持 JSON 数据自动解析 #### 5. **查看交互式文档** - Swagger UI:`http://127.0.0.1:8000/docs` - ReDoc:`http://127.0.0.1:8000/redoc` - 功能: - 测试 API 端点 - 查看请求/响应格式 - 自动生成客户端代码 #### 6. **项目结构建议** ``` my_project/ ├── main.py # 入口文件 ├── routers/ # 路由模块 │ ├── items.py │ └── users.py ├── models.py # 数据模型 └── requirements.txt # 依赖列表 ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值