from sqlalchemy.orm import declared_attr使用
时间: 2024-04-30 15:20:33 浏览: 332
`declared_attr`是SQLAlchemy中的一个装饰器函数,用于在类定义中声明动态属性。这个函数可以用于在类定义时动态定义属性,通常在类继承时非常有用。
这个函数在类定义中声明一个属性,它会在类被实例化时自动创建。使用`declared_attr`装饰器的方法必须返回一个有效的Python描述符对象,例如一个属性,方法,类方法或静态方法。
下面是一个使用`declared_attr`的例子,其中定义了一个基类和一个继承自基类的子类:
```python
from sqlalchemy.ext.declarative import declared_attr
from sqlalchemy import Column, Integer, String
class Base(object):
@declared_attr
def __tablename__(cls):
return cls.__name__.lower()
id = Column(Integer, primary_key=True)
name = Column(String)
class User(Base):
age = Column(Integer)
```
在这个例子中,`Base`类定义了一个`__tablename__`属性。使用`@declared_attr`装饰器可以使子类`User`继承这个属性并使用它。
当`User`类实例化时,它会自动创建一个`__tablename__`属性,其值为`'user'`,并且还会创建一个`id`和`name`属性,这些属性都是从`Base`类继承而来的。此外,`User`类还定义了一个`age`属性。
阅读全文