我得到了:

文件"C:\PythonProjects\myProject\routers\home.py",第39行, @router.get("/home",response_class=HTMLResponse)

...

raise TypeError('{!r}不是可调用对象". format(obj)) TypeError:0x 000002 B68 FBDB 100处的生成器对象get_db不是 可调用对象

home.py

    from fastapi import Depends, APIRouter, Request
    from fastapi.templating import Jinja2Templates
    from sqlalchemy.orm import Session
    from starlette.responses import HTMLResponse
    
    from database import SessionLocal, engine
    from models import Base
    
    router = APIRouter()
    templates = Jinja2Templates(directory="templates", autoescape=False)
    Base.metadata.create_all(bind=engine)
    
    
    def get_db():
        try:
            db = SessionLocal()
            yield db
        finally:
            db.close()

@router.get("/home", response_class=HTMLResponse)
async def all_skills(request: Request, db: Session = Depends(get_db())):
    all = db.query()
    return templates.TemplateResponse("home.html", {"request": request, "show": all})

database.py

from sqlalchemy import create_engine
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.orm import sessionmaker

SQL_ALCHEMY_DATABASE_URL = "postgresql://postgres:password@localhost/DatabaseName"

engine = create_engine(SQL_ALCHEMY_DATABASE_URL)

SessionLocal = sessionmaker(autocommit=False, autoflush=False, bind=engine)

Base = declarative_base()

main.py

from fastapi import FastAPI

import models
from database import engine
from routers import home
from starlette.staticfiles import StaticFiles


app = FastAPI()

models.Base.metadata.create_all(bind=engine)

app.mount("/static", StaticFiles(directory="static"), name="static")

app.include_router(home.router)

推荐答案

您将作为依赖使用

@router.get("/home", response_class=HTMLResponse)
async def all_skills(request: Request, db: Session = Depends(get_db)):
    all = db.query()
    return templates.TemplateResponse("home.html", {"request": request, "show": all})

Python相关问答推荐

Python tkinter关闭第一个窗口,同时打开第二个窗口

X射线扫描显示Docker中的pip漏洞,尽管图像中未安装pip

如何修复fpdf中的线路出血

在Python中使用readline函数时如何向下行

在Python中根据id填写年份系列

Flask主机持续 bootstrap 本地IP| Python

使用argsorted索引子集索引数组

opencv Python稳定的图标识别

将HTML输出转换为表格中的问题

比较两个二元组列表,NP.isin

使用LineConnection动画1D数据

使用plotnine和Python构建地块

DataFrame groupby函数从列返回数组而不是值

如何避免Chained when/then分配中的Mypy不兼容类型警告?

在Pandas DataFrame操作中用链接替换'方法的更有效方法

try 将一行连接到Tensorflow中的矩阵

导入...从...混乱

提取相关行的最快方法—pandas

使用BeautifulSoup抓取所有链接

为什么'if x is None:pass'比'x is None'单独使用更快?