FastAPI学习—FastAPI初识及参数传递使用—day03
from fastapi import FastAPIapp = FastAPI()@app.get("/")def index():return "Hello World!""""终端启动:1. uvicorn 模块名:模块中的app名 --reload默认是127.0.0.1:8000例:uvicorn main:app --reload2. 设置ip和端口:uvicorn 模块名:模块中的a
·
from fastapi import FastAPI, Query
from enum import Enum
from typing import Optional
from pydantic import BaseModel, Field
app = FastAPI()
@app.get("/")
def index():
return "Hello World!"
"""
终端启动:
1. uvicorn 模块名:模块中的app名 --reload 默认是127.0.0.1:8000
例:uvicorn main:app --reload
2. 设置ip和端口:uvicorn 模块名:模块中的app名 --reload --host=ip地址 --port=端口号
例:uvicorn 01:app --reload --host=0.0.0.0 --port=8080
"""
# 1. 路径参数
# 普通路径参数
# @app.get("/book/{book_id}/")
# def book_detail(book_id):
# return {"book_id": book_id}
# 路径参数指定类型
@app.get("/book/{book_id}/")
def book_detail(book_id: int):
return {"book_id": book_id}
# 路径参数设置枚举值类
class GenderNum(str, Enum):
male = "male"
female = "female"
# 参数设置枚举值
@app.get("/gender/{gender_name}/")
def gender(gender_name: GenderNum):
return {"gender_name": gender_name}
# 2. 查询参数
# Optional:可选参数
# 可以使Optional中指定的类型,也可以是None类型
# 如果不传会报错,需要设置等于None,这样就可以不传
# @app.get("/search/")
# def search(q: Optional[str] = None):
# return {"msg": "查询参数为{}".format(q)}
# 查询参数验证
# 不传默认为None
# @app.get("/search/")
# def search(q: str = Query(None, max_length=5)):
# return {"msg": "查询参数为{}".format(q)}
# 验证必传, 不传会报错
@app.get("/search/")
def search(q: str = Query(..., max_length=5)):
return {"msg": "查询参数为{}".format(q)}
# 3. 表单参数
# 设置表单请求体参数验证模型
class ArticleModel(BaseModel):
title: str
author: str
content: str = None # 如果没有传入这个参数,则默认为None
description: str = Field(max_length=5) # 限制最大长度
@app.post("/article/")
def add_article(article: ArticleModel):
print(article)
return {"article": article}
更多推荐
已为社区贡献2条内容
所有评论(0)