Roh*_*rma 10 python python-3.x swagger-ui fastapi
我是 FastAPI 的新手,在导入其他文件时遇到了这个问题。
\n我收到错误:\xe2\x80\x8d\xe2\x80\x8d\xe2\x80\x8d\xe2\x80\x8d
\nfrom . import schemas\nImportError: attempted relative import with no known parent package\n
Run Code Online (Sandbox Code Playgroud)\n对于上下文,我从中导入的文件是一个名为 Blog 的文件夹。我看到某些 StackOverflow 答案说from . import schemas
我应该写from Blog import schemas
. 即使他们的解决方案是正确的,并且我在运行 python 程序时没有收到任何错误,当我尝试使用 uvicorn 运行 FastAPI 时,我收到此错误,并且我的本地主机页面未加载。
File "./main.py", line 2, in <module>\nfrom Blog import schemas\nModuleNotFoundError: No module named \'Blog\'\n
Run Code Online (Sandbox Code Playgroud)\n\n主文件的代码如下所示:
\nfrom fastapi import FastAPI\nfrom Blog import schemas, models\nfrom database import engine\n\napp = FastAPI()\n\nmodels.Base.metadata.create_all(engine)\n\n\n@app.post(\'/blog\')\ndef create(request: schemas.Blog):\n return request\n
Run Code Online (Sandbox Code Playgroud)\n模式.py
\nfrom pydantic import BaseModel\n\n\nclass Blog(BaseModel):\n title: str\n body: str\n
Run Code Online (Sandbox Code Playgroud)\n数据库.py
\nfrom sqlalchemy import create_engine\nfrom sqlalchemy.ext.declarative import declarative_base\nfrom sqlalchemy.orm import sessionmaker\n\nSQLALCHAMY_DATABASE_URL = \'sqlite:///./blog.db\'\n\nengine = create_engine(SQLALCHAMY_DATABASE_URL, connect_args={"check_same_thread": False})\n\nSessionLocal = sessionmaker(bind=engine, autocommit=False, autoflush=False)\n\nBase = declarative_base()\n
Run Code Online (Sandbox Code Playgroud)\n模型.py
\nfrom sqlalchemy import *\nfrom database import Base\n\n\nclass Blog(Base):\n __tablename__ = \'blogs\'\n id = Column(Integer, primary_key=True, index=True)\n title = Column(String)\n body = Column(String)\n
Run Code Online (Sandbox Code Playgroud)\nSwaggerUI 也没有加载。
\n任何帮助将不胜感激!:)
\nMat*_*ias 12
您还可以从上面的文件夹运行您的应用程序。例如,如果你使用 uvicorn,你可以这样做
uvicorn folder.main:app --reload
Run Code Online (Sandbox Code Playgroud)
代替
uvicorn main:app --reload
Run Code Online (Sandbox Code Playgroud)
那么你可以保留这个点。
由于您的schemas.py
和文件与您的文件models.py
位于同一目录main.py
中,因此您应该按如下方式导入这两个模块,而不是使用from Blog import schemas, models
:
import schemas, models
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
11933 次 |
最近记录: |