跳转到主要内容

面向人类的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 (2.1 MB 查看哈希值)

上传时间

构建分发

quart_sqlalchemy-3.0.4-py3-none-any.whl (3.0 MB 查看哈希值)

上传时间 Python 3

由以下支持

AWSAWS 云计算和安全赞助商 DatadogDatadog 监控 FastlyFastly CDN GoogleGoogle 下载分析 MicrosoftMicrosoft PSF赞助商 PingdomPingdom 监控 SentrySentry 错误日志 StatusPageStatusPage 状态页面