在FastAPI框架中,pydantic错误消息如下所示。
{"detail": [
{
"loc": [
"body",
"location",
"name"
],
"msg": "field required",
"type": "value_error.missing"
},
{
"loc": [
"body",
"location",
"name12"
],
"msg": "extra fields not permitted",
"type": "value_error.extra"
}
]
}
Run Code Online (Sandbox Code Playgroud)
我想发送一条简单的消息:{"field-name":"error message"}。
在 Pydantic 文档中,他们提到,在 try: except 块中创建一个模型实例,并在 except 块中构造错误消息。但是在fast API中,模型实例是由fastapi本身创建的,例如,如果我写一个像下面这样的URL
@router.post("/", response_model=DataModelOut)
async def create_location(location: schemas.LocationIn, user: str = Depends(get_current_user) ):
return model.save(location,user)
Run Code Online (Sandbox Code Playgroud)
这里fastapi本身创建的location实例就是问题所在。
有什么方法可以构造错误消息吗?
我阅读了 fastapi contrib 代码。分页仅适用于 mongodb。fastapi 是否也有用于 postgres db 的分页模块?
fastapi swagger 不发送带有标头的令牌。即使我通过 swagger 的授权按钮登录。这是它显示的网址:curl -X GET " http://localhost:8000/locations/?limit=100 " -H "accept: application/json" -H "Authorization: Bearer undefined"
oauth2_scheme = OAuth2PasswordBearer(tokenUrl="/users/createtoken")
我按照https://fastapi.tiangolo.com/tutorial/bigger-applications/资源来设计我的应用程序
.....game/urls.py....
from fastapi import APIRouter
router = APIRouter()
@router.post("/", response_model=schemas.GameOut, tags=["games"])
def create_game(game: schemas.GameIn, db: Session = Depends(get_db)):
return Crud.create(db,game,model)
...main.py...
from game import urls as game_urls
app.include_router(game_urls,prefix="/games")
Run Code Online (Sandbox Code Playgroud)
正确导入所有内容。当我运行 uvicorn main:app --reload 时,它显示“NO attribures 'routes'”错误,我无法找到,我在这里犯的错误是什么。任何人都可以帮助我吗?