fastapi Tortoise-ORM、SQLAlchemy、peewee使用orm查询user数据表里面admin用户的例子
时间: 2024-01-26 08:05:17 浏览: 26
假设我们有一个 User 数据表,其中包含以下字段:id、username、password、email、is_admin。
以下是使用三种 ORM 库查询 User 表中 is_admin 为 True 的用户的示例代码:
使用 Tortoise ORM:
```python
from tortoise.queryset import QuerySet
class User(models.Model):
id = fields.IntField(pk=True)
username = fields.CharField(50)
password = fields.CharField(50)
email = fields.CharField(50)
is_admin = fields.BooleanField(default=False)
async def get_admin_users() -> QuerySet:
return await User.filter(is_admin=True)
```
使用 SQLAlchemy:
```python
from sqlalchemy import create_engine, Column, Integer, String, Boolean
from sqlalchemy.orm import sessionmaker
from sqlalchemy.ext.declarative import declarative_base
Base = declarative_base()
class User(Base):
__tablename__ = 'user'
id = Column(Integer, primary_key=True)
username = Column(String(50))
password = Column(String(50))
email = Column(String(50))
is_admin = Column(Boolean, default=False)
engine = create_engine('sqlite:///users.db')
Session = sessionmaker(bind=engine)
def get_admin_users():
session = Session()
return session.query(User).filter(User.is_admin == True).all()
```
使用 peewee:
```python
from peewee import Model, SqliteDatabase, CharField, BooleanField
db = SqliteDatabase('users.db')
class User(Model):
username = CharField()
password = CharField()
email = CharField()
is_admin = BooleanField(default=False)
class Meta:
database = db
def get_admin_users():
return User.select().where(User.is_admin == True)
```
以上三种 ORM 库的代码都可以查询 User 表中 is_admin 为 True 的用户。注意,这里使用的数据库都是 SQLite,您可以根据需要更改数据库配置。