Page 1 of 1

ImporteurRor: Name 'Register_Tortoise' kann nicht importieren.

Posted: 15 Feb 2025, 12:17
by Anonymous
Ich hoffe, alle sind sicher und in Ordnung. Ich versuche diesen Code, damit er funktioniert. Ich habe eine Main.Py -Datei und models.py -Datei, in der ich einen Klassenbenutzer in der Datei models.py erstellt habe, und versuche, die Benutzerklasse aus Models.py -Datei in Main.py -Datei zu importieren. Ich benutze Tortoise Orm zu diesem Zweck. Ich erhalte einen Fehler "ImporteurRor: Der Name 'Register_Tortoise' kann in der Eingabeaufforderung < /p>
nicht den Namen 'Register_tortoise' von 'Tortoise.contrib.pydantic' importieren

Code: Select all

**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})

< /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)