Mik*_*ike 7 python sql sqlalchemy
我创建了声明表。
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy import Column, String
from sqlalchemy.dialects.postgresql import UUID
import uuid
Base = declarative_base()
class User(Base):
__tablename__ = 'users'
id = Column(UUID(as_uuid=True), primary_key=True, default=uuid.uuid4, unique=True)
name = Column(String)
Run Code Online (Sandbox Code Playgroud)
我需要过滤数据。在 中Flask-SQLAlchemy,我做
name = 'foo'
User.query.filter_by(name=name).first()
Run Code Online (Sandbox Code Playgroud)
但如果我在SQLAlchemy没有 Flask 的情况下使用,则会出现错误:
类型对象“用户”没有属性“查询”
对我有用的唯一方法是通过session.
engine = create_engine('DATABASE_URL')
Session = sessionmaker(bind=engine)
session = Session()
name = 'foo'
user = session.query(User).filter_by(name=name).first()
session.close()
Run Code Online (Sandbox Code Playgroud)
该Model.query...习惯用法不是 SQLAlchemy ORM 的默认部分;它是Flask-SQLAlchemy提供的定制。它在基本 SQLAlchemy 中不可用,这就是您收到错误消息的原因。