首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

SqlAlchemy 2.0 中文文档(七)

另请参阅 peps.python.org/pep-0681/#the-dataclass-transform-decorator - 有关像 SQLAlchemy 这样的库如何实现PEP 681支持的背景信息...utc_timestamp()) [generated in 0.00010s] () COMMIT 与 Annotated 的集成 将整个列声明映射到 Python 类型 中介绍的方法演示了如何使用...该装饰器启动一个过程来扫描类以定义类的行为的属性,然后用于生成方法、文档和注释。...另请参阅 peps.python.org/pep-0681/#the-dataclass-transform-decorator - 背景介绍了像 SQLAlchemy 这样的库如何启用 PEP 681...此装饰器启动一个过程,用于扫描类以查找定义类行为的属性,然后使用这些属性生成方法、文档和注释。 SQLAlchemy ORM 支持使用声明式与命令式表或命令式映射来映射 attrs 类。

21420

盘点Flask与数据库的交互插件--Flask-Sqlalchemy

# 多少秒后自动回收连接,mysql默认为2小 SQLALCHEMY_RECORD_QUERIES # 可以用于显式地禁用或启用查询记录 SQLALCHEMY_ECHO...# 为Ture用于调试,显示错误信息 SQLALCHEMY_BINDS # 一个映射 binds 到连接 URI 的字典 3).使用独特的创建引擎 from sqlalchemy...import create_engine # echo参数为True,会显示每条执行的SQL语句,为False关闭 engine = create_engine('mysql+pymysql://...14).查找对象返回分组结果 son.query.filter(son.age==10).group_by(son.name).all() # 返回age为10的名字对象分组 15).返回查询结果的数量...,返回一个每页显示3条记录的分页对象 paginate=son.query.paginate(p=int(p),per_page=3) paginate 属性: pages # 总共生成页面数量

2.4K60

SqlAlchemy 2.0 中文文档(六)

映射类基本组件一节讨论了Mapper构造的一般配置元素,它是定义特定用户定义类如何映射到数据库表或其他 SQL 构造的结构。...以下各节描述了关于声明式系统如何构建 Mapper 的具体细节。 使用声明式定义映射属性 使用声明式进行表配置 中给出的示例说明了针对表绑定列的映射,使用了 mapped_column() 构造。...这些列结构始终是从原始混合或基类复制的,因此相同的混合/基类可以应用于任意数量的目标类,每个目标类都将具有自己的列结构。...下面的示例说明了如何在Base类方面应用上一节的一些示例: from sqlalchemy import ForeignKey from sqlalchemy.orm import declared_attr...这些列构造始终从源混合类或基类复制,因此可以将相同的混合类/基类应用于任意数量的目标类,每个目标类都将有自己的列构造。

18610

Flask_数据库

当使用 不合适的指定无编码的数据库默认值,这对于 一些数据库适配器是必须的(比如 Ubuntu 上 某些版本的 PostgreSQL )。...db.String(64), unique=True) us = db.relationship('User', backref='role',lazy='dynamic') # 定义关系,...从数据库中加载数据 如果设置为子查询方式(subquery),则会在加载完Role对象后,就立即加载与其关联的对象,这样会让总查询数量减少,但如果返回的条目数量很多,就会比较慢 设置为 subquery...返回查询的第一个结果,如果未查到,返回404 get() 返回指定主键对应的行,如不存在,返回None get_or_404() 返回指定主键对应的行,如不存在,返回404 count() 返回查询结果的数量...paginate() 返回一个Paginate对象,它包含指定范围内的结果 paginate 方法详解 # page 为当前页 # per_page 每页显示的记录数量 # Flase 没有记录不报错

1.3K50

25. Flask 数据库迁移 flask-migrate

MigrateCommand) #定义模型类-作者 class Author(db.Model): __tablename__ = 'author' id = db.Column(db.Integer,primary_key...self.name #定义模型类-书名 class Book(db.Model): __tablename__ = 'books' id = db.Column(db.Integer,primary_key...self): return 'Book:%s,%s'%(self.info,self.leader) if __name__ == '__main__': # 通过管理对象来启动...对比不一完全正确,有可能会遗漏一些细节,需要进行检查 #创建自动迁移脚本 python3 db_database.py db migrate -m "initial migration" ? ?...回退数据库 回退数据库,需要指定回退版本号,由于版本号是随机字符串,为避免出错,建议先使用python3 db_database.py db history命令查看历史版本的具体版本号,然后复制具体版本号执行回退

3.3K10

Flask入门到放弃(四)—— 数据库

数据库,需要安装 mysqldb 驱动 pip install flask-mysqldb 安装flask-mysqldb,注意 安装 flask-mysqldb的时候,python底层依赖于一个底层的模块...),则会在加载完Teacher对象后,就立即加载与其关联的对象,这样会让总查询数量减少,但如果返回的条目数量很多,就会比较慢 设置为 subquery 的话,teacher.courses 返回所有当前老师关联的课程列表...返回查询的第一个结果,如果未查到,返回404 get() 返回指定主键对应的行,如不存在,返回None get_or_404() 返回指定主键对应的行,如不存在,返回404 count() 返回查询结果的数量...对比不一完全正确,有可能会遗漏一些细节,需要进行检查 python main.py db migrate -m 'initial migration' # 这里等同于django里面的 makemigrations...存储session的基本配置 需要手动创建session表,在项目第一次启动的时候,使用db.create_all()来完成创建。

3.2K20

SqlAlchemy 2.0 中文文档(十一)

(somechild) 经常出现的一个问题是,当直接将子对象传递给Session.delete()如何删除“secondary”表中的行: session.delete(somechild) 这里有几种可能性...## 关系参数的延迟评估 在前面的部分中,大多数示例都说明了各种relationship() 构造是如何使用字符串名称而不是类本身来引用它们的目标类的,比如当使用Mapped,会生成一个仅在运行时存在的字符串引用...(somechild) 当子对象直接传递给Session.delete(),“次要”表中的行如何删除经常会引起一个问题: session.delete(somechild) 这里有几种可能性: 如果从...(somechild) 经常出现的一个问题是当直接将子对象传递给Session.delete()如何删除“secondary”表中的行: session.delete(somechild) 这里有几种可能性...但是,如果在相同的事务或Session中对这些集合进行更改的地方读取Parent.children或Child.parents将不一与从Parent.child_associations或Child.parent_associations

11510

SqlAlchemy 2.0 中文文档(五十七)

为了上下文,我们还说明了在一个relationship()中应用确切类型如何使用Mapped。...新功能的性能几乎在各个方面都提供了一个数量级的性能增加,当 INSERT ORM 对象,这些对象没有预先分配的主键值,在下表中有所指示,大多数情况下特定于使用 RETURNING,而这通常不支持 executemany...这种行为被默认选择是因为它与旧版本的 SQLAlchemy 兼容性最大,并且只有在给定的驱动程序已经使用 SAVEPOINT 才会开始一个新的 SAVEPOINT,因为对 SAVEPOINT 的支持不仅取决于特定的后端和驱动程序...新功能的性能为每个驱动程序的 INSERT ORM 对象的性能提供了几乎横跨所有板块的数量级的性能提升,如下表所示,大多数情况下特定于 RETURNING 的使用,通常不支持 executemany()...无论如何,Table 对象都不应该具有两个或更多具有相同名称的 Column 对象,无论它们的 .key 如何。已经确定并修复了仍然可能发生此情况的边缘情况。

23410

SqlAlchemy 2.0 中文文档(三十三)

虽然该字段可以包含任意数量的元素,但我们希望单独引用名为name的元素作为行为类似独立列的专用属性: from sqlalchemy import Column, JSON, Integer from...虽然此字段可以包含任意数量的元素,但我们希望单独引用称为 name 的元素,作为一个独立的属性,其行为类似于独立的列: from sqlalchemy import Column, JSON, Integer...default – 在给定索引处没有值返回的值。 datatype – 当字段为空使用的默认数据类型。...在给定对象继承层次结构中只允许一个仪器化实现。 此属性的值必须是可调用的,并将传递一个类对象。...提供的功能数量,从最大到最小(这两个方面通常完美对应)。

19110

SqlAlchemy 2.0 中文文档(五十五)

有关如何处理此问题的提示,请参阅 处理断开连接 部分。 ### ProgrammingError 引发编程错误的异常,例如找不到表或已存在,SQL 语句中的语法错误,指定的参数数量错误等。...()方法明确启动,或者由于连接在发出任何 SQL 语句自动开始一个事务,如 SQLAlchemy 2.x 系列中发生的情况。...有关如何处理此问题的提示,请参阅处理断开连接部分。 ### ProgrammingError 由于编程错误引发的异常,例如未找到表或已存在,SQL 语句中的语法错误,指定的参数数量错误等。...有关如何处理此问题的提示,请参见处理断开连接部分。 ProgrammingError 由于编程错误而引发的异常,例如表未找到或已存在,在 SQL 语句中存在语法错误,指定的参数数量错误等。...当在给定记录中使用 ORM 按主键批量更新功能而未提供主键值,将出现此错误,例如: >>> session.execute( ...

25510

SqlAlchemy 2.0 中文文档(五十四)

如何配置一个与 Python 保留字或类似的列? 如何在给定映射类的情况下获取所有列、关系、映射属性等的列表?...如何在给定一个映射类的情况下获取所有列、关系、映射属性等列表? 所有这些信息都可以从 Mapper 对象中获得。...这个事务是“逻辑”的,因为直到调用 SQL 语句才会实际使用任何数据库资源,此时会启动连接级和 DBAPI 级事务。...这个事务是“逻辑”的,因为它实际上并不使用任何数据库资源,直到调用 SQL 语句,此时会启动一个连接级别和 DBAPI 级别的事务。...如何创建一个始终向每个查询添加特定过滤器的查询? 参见FilteredQuery中的配方。 我的查询返回的对象数量与 query.count() 告诉我的数量不一样 - 为什么?

8810

FastAPI 学习之路(三十三)创建数据库

我们看下在fastapi是如何操作设计数据库的 #这个安装依赖也可以 pip install sqlalchemy #我在看到有支持异步的,我用的这个,但是这个没有上面的成熟 pip install fastapi-async-sqlalchemy...我们看下如何在项目中使用 SQLALCHEMY_DATABASE_URL = "sqlite:///....我们看下 class User(Base): __tablename__ = "users" id = Column(Integer, primary_key=True, index=True...Base.metadata.create_all(bind=engine) #数据库初始化,如果没有库或者表,会自动创建 我们去启动下看看,是否可以创建 我们运行后,...表结构和我们设计的是一样的,这样我们就完成了创建数据库的操作,我们接下来就是看,如何去操作数据库。 后记 发现问题,解决问题。遇到问题,慢慢解决问题即可。

1K10
领券