面向人类的SQLAlchemy,带有Quart框架适配器。
项目描述
Quart-SQLAlchemy为人类提供了一个简单的SQLAlchemy包装。我尽量使事情保持尽可能简单,抽象了许多复杂性,并使用SQLAlchemy开发人员推荐的最佳实践来实施一切,目标版本为2.0.x+。作为便利,提供了一个Quart框架适配器,但此库的其他部分与框架无关。
捆绑的SQLAlchemy对象有意放弃使用scoped_session及其异步对应项。从版本2.x+开始,预计会话是短暂的,并使用纯文本和上下文管理器来管理会话生命周期。任何旨在更改状态的操作都应使用会话.begin()返回的上下文管理器显式打开事务。这种使用模式可以防止会话在进程、线程或任务之间共享,这与过去减轻此类共享的传统做法相反。另一个最佳实践是预期任何事务都可能间歇性失败,并构建您的逻辑以自动执行重试。您可以在retry模块中找到重试会话上下文管理器。
安装
使用 pip 安装和更新
$ pip install quart-sqlalchemy
安装带有未发布pytest-asyncio修复的最新版本
$ pip install git+ssh://git@github.com/joeblackwaslike/quart-sqlalchemy.git#egg=quart_sqlalchemy
从我们的发布版安装轮文件
$ pip install https://github.com/joeblackwaslike/quart-sqlalchemy/releases/download/v3.0.1/quart_sqlalchemy-3.0.1-py3-none-any.whl
添加到requirements.txt
quart-sqlalchemy @ https://github.com/joeblackwaslike/quart-sqlalchemy/releases/download/v3.0.1/quart_sqlalchemy-3.0.1-py3-none-any.whl
简单示例
import sqlalchemy as sa
import sqlalchemy.orm
from sqlalchemy.orm import Mapped, mapped_column
from quart import Quart
from quart_sqlalchemy import SQLAlchemyConfig
from quart_sqlalchemy.framework import QuartSQLAlchemy
app = Quart(__name__)
db = QuartSQLAlchemy(
config=SQLAlchemyConfig
binds=dict(
default=dict(
engine=dict(
url="sqlite:///",
echo=True,
connect_args=dict(check_same_thread=False),
),
session=dict(
expire_on_commit=False,
),
)
)
),
app,
)
class User(db.Model)
__tablename__ = "user"
id: Mapped[int] = mapped_column(sa.Identity(), primary_key=True, autoincrement=True)
name: Mapped[str] = mapped_column(default="default")
db.create_all()
with db.bind.Session() as s:
with s.begin():
user = User(username="example")
s.add(user)
s.flush()
s.refresh(user)
users = s.scalars(sa.select(User)).all()
print(user, users)
assert user in users
贡献
有关设置开发环境和如何为Quart-SQLAlchemy做出贡献的指导,请参阅贡献指南。
项目详情
关闭
quart_sqlalchemy-3.0.4.tar.gz 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 302f9da74ddd86fc02cf83d5a48d608796cd728e3c6892d98f992e0d49da0121 |
|
MD5 | fc9e19f44bb8dce9aa8e6b2316d5545f |
|
BLAKE2b-256 | 4e77d3764f7c4d0a5abe692db68cbf0992a5766fe41c7b85ffa9af54a9bd1c52 |
关闭
quart_sqlalchemy-3.0.4-py3-none-any.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | d262542fd83780917bd30bf7b6f33b291784a8a796e9962cf87c5aff7368c110 |
|
MD5 | 0909f391da174db425e43298940f0816 |
|
BLAKE2b-256 | e9d2f4a6711608b666b7538150ab4569c0058fbfdc068e605a918719791e9932 |