SQL ALCHEMY- FAST API- API 模块对象不可调用
SQL ALCHEMY- FAST API- API MODULE OBJECT NOT CALLABLE
测试sql炼金术的终点。错误读取:模块对象不可调用?查询词也没有突出显示。本教程说我应该做 db.query(models.Posts).all() 但这也不起作用。通常 vs 代码突出显示和自动完成,所以我知道它连接到正确的对象。
当我输入 db.query() 时,ide 无法识别查询方法?我什至从 sqlalchemy.orm 手动导入它,但它仍然无法识别??其他一切正常,只是通过查询方法测试 orm 是错误的。
错误提示:_connection_for_bind 中的文件“C:****/**/***lib\site-packages\sqlalchemy\orm\session.py”,第 747 行
conn = bind.connect()
AttributeError: 'function' 对象没有属性 'connect'
在教程中,老师只是输入db。 query(models.Post).all() 和所有函数和方法都被识别。在我的查询中无法识别。请帮忙
from logging import exception
from random import randrange
from tkinter.tix import STATUS
from typing import Optional
from urllib import response
from fastapi import Body, FastAPI, Query, Response ,status, HTTPException , Depends
from pydantic import BaseModel
import psycopg2
from psycopg2.extras import RealDictCursor
import time
from sqlalchemy import create_engine, engine_from_config
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.orm import sessionmaker,session , query
import models
from database import ormengine , SessionLocal , get_db
@app.get("/sqlalchemy")
def test_post(db: session= Depends(get_db)):
post = db.query(models.Post).all()
return {"data":post}
models.py 文件为:
import string
from typing import Text
from xmlrpc.client import boolean
from database import Base, SessionLocal
from sqlalchemy import TIMESTAMP, Integer, PrimaryKeyConstraint, String, Boolean, Column
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.sql.expression import null , text
from sqlalchemy.sql.sqltypes import Text , TIMESTAMP
class Post(Base):
__tablename__= 'apiproj2'
id= Column( Integer , primary_key= True, nullable= False)
title= Column( String, nullable= False)
content = Column( String, nullable= False)
published= Column(Boolean, server_default= 'True' , nullable=False)
created_at = Column(TIMESTAMP( timezone=True), nullable= False , server_default= text('now()'))
database.py
from sqlalchemy import create_engine, engine_from_config
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.orm import sessionmaker
SQLALCHEMY_DATABASE_URL = "postgresql://postgres:naijalife@localhost/fastapi database"
sqlalchemy_conn= 'postgresql://postgres:naija4life@localhost/fastapi database'
ormengine= create_engine(sqlalchemy_conn)
SessionLocal = sessionmaker(autocommit=False, autoflush=False, bind= engine_from_config )
Base = declarative_base()
# Dependency
def get_db():
db = SessionLocal()
try:
yield db
finally:
db.close()
我调用了错误的引擎,我应该调用 ormengine。我创建的用于连接数据库的引擎。教程中有错误。我改变了这个但它没有用,在重新启动 vs 代码后它起作用了。感谢大家的帮助。
测试sql炼金术的终点。错误读取:模块对象不可调用?查询词也没有突出显示。本教程说我应该做 db.query(models.Posts).all() 但这也不起作用。通常 vs 代码突出显示和自动完成,所以我知道它连接到正确的对象。
当我输入 db.query() 时,ide 无法识别查询方法?我什至从 sqlalchemy.orm 手动导入它,但它仍然无法识别??其他一切正常,只是通过查询方法测试 orm 是错误的。
错误提示:_connection_for_bind 中的文件“C:****/**/***lib\site-packages\sqlalchemy\orm\session.py”,第 747 行 conn = bind.connect() AttributeError: 'function' 对象没有属性 'connect'
在教程中,老师只是输入db。 query(models.Post).all() 和所有函数和方法都被识别。在我的查询中无法识别。请帮忙
from logging import exception
from random import randrange
from tkinter.tix import STATUS
from typing import Optional
from urllib import response
from fastapi import Body, FastAPI, Query, Response ,status, HTTPException , Depends
from pydantic import BaseModel
import psycopg2
from psycopg2.extras import RealDictCursor
import time
from sqlalchemy import create_engine, engine_from_config
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.orm import sessionmaker,session , query
import models
from database import ormengine , SessionLocal , get_db
@app.get("/sqlalchemy")
def test_post(db: session= Depends(get_db)):
post = db.query(models.Post).all()
return {"data":post}
models.py 文件为:
import string
from typing import Text
from xmlrpc.client import boolean
from database import Base, SessionLocal
from sqlalchemy import TIMESTAMP, Integer, PrimaryKeyConstraint, String, Boolean, Column
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.sql.expression import null , text
from sqlalchemy.sql.sqltypes import Text , TIMESTAMP
class Post(Base):
__tablename__= 'apiproj2'
id= Column( Integer , primary_key= True, nullable= False)
title= Column( String, nullable= False)
content = Column( String, nullable= False)
published= Column(Boolean, server_default= 'True' , nullable=False)
created_at = Column(TIMESTAMP( timezone=True), nullable= False , server_default= text('now()'))
database.py
from sqlalchemy import create_engine, engine_from_config
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.orm import sessionmaker
SQLALCHEMY_DATABASE_URL = "postgresql://postgres:naijalife@localhost/fastapi database"
sqlalchemy_conn= 'postgresql://postgres:naija4life@localhost/fastapi database'
ormengine= create_engine(sqlalchemy_conn)
SessionLocal = sessionmaker(autocommit=False, autoflush=False, bind= engine_from_config )
Base = declarative_base()
# Dependency
def get_db():
db = SessionLocal()
try:
yield db
finally:
db.close()
我调用了错误的引擎,我应该调用 ormengine。我创建的用于连接数据库的引擎。教程中有错误。我改变了这个但它没有用,在重新启动 vs 代码后它起作用了。感谢大家的帮助。