如何解决导入错误:无法从“tortoise.contrib.pydantic”导入名称“register_tortoise”
希望大家都平安无事。我正在尝试使用此代码使其工作。我有一个 main.py 文件和 models.py 文件,我在 models.py 文件中创建了一个类用户,我试图将用户类从 models.py 文件导入到 main.py 文件。为此,我使用 Tortoise ORM。我在命令提示符中收到错误“ImportError:无法从'tortoise.contrib.pydantic'导入名称'register_tortoise'”
**main.py**
from fastapi import FastAPI,Request,Form,HTTPException
from fastapi.responses import HTMLResponse
from fastapi.templating import Jinja2Templates
from fastapi.staticfiles import StaticFiles
from models import User_Pydantic,UserIn_Pydantic,User
from tortoise.contrib.pydantic import register_tortoise,HTTPNotFoundError
app = FastAPI()
register_tortoise(
app,db_url="sqlite://store.db",modules={'models':['models']},generate_schemas = True,add_exception_handlers = True
)
app.mount("/static",StaticFiles(directory="static"),name="static")
templates = Jinja2Templates(directory="templates")
@app.get("/",response_class=HTMLResponse)
async def login_page(request :Request):
return templates.TemplateResponse("index.html",{"request":request})
@app.post("/loginsuccess/",response_class=HTMLResponse)
async def login_success(request: Request,username: str = Form(...),password: str = Form(...)):
if username=='michael' and password=='clarke':
return templates.TemplateResponse("homepage.html",{"request": request,"username":username})
else:
status_code:int
status_code = 500
return templates.TemplateResponse("index.html",{"request":request,"status_code":status_code})
**models.py**
from tortoise import fields
from tortoise.models import Model
from tortoise.contrib.pydantic import pydantic_model_creator
class User(Model):
id = fields.CharField(pk=True,max_length=50)
username = fields.CharField(max_length=50,unique=True)
password = fields.CharField(max_length=50,null=True)
class PydanticMeta:
pass
User_Pydantic = pydantic_model_creator(User,name="User")
UserIn_Pydantic = pydantic_model_creator(User,name="UserIn",exclude_readonly=True)
解决方法
库的 API 已更改,您需要使用此 API:
from tortoise.contrib.fastapi import HTTPNotFoundError,register_tortoise
代替:
from tortoise.contrib.pydantic import register_tortoise,HTTPNotFoundError
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。