SQLAlchemy 2 In Practice - Chapter 8: SQLAlchemy and the Web
a day ago
- SQLAlchemy可以通过使用db.py和models.py以及会话上下文管理器,无需特殊集成即可集成到Web应用中。
- 为避免长导入列表和命名冲突,只导入父模块(sqlalchemy as sa, sqlalchemy.orm as so),并通过前缀访问符号。
- 为Web API进行的模型序列化可以通过在每个模型中添加to_dict()方法来实现,该方法返回可序列化为JSON的字典,并递归包含相关对象。
- Alchemical包通过将Engine、MetaData、Model基类和Session封装到单个Alchemical实例中,简化了SQLAlchemy的设置,内置了对Flask和异步的支持。
- 使用Flask和FastAPI的示例Web应用演示了一个带有分页、排序和搜索功能的服务器端表格,使用了两个查询:一个用于总数,一个用于分页数据。
- Flask路由使用蓝图和由Alchemical自动管理的会话,而FastAPI使用带有显式会话上下文管理器的异步端点。