Skip to main content

A simple sqlalchemy library.

Project description

ff-sqlalchemy

一个简洁易用的 SQLAlchemy 封装库,简化数据库操作流程。

功能简介

  • 基于 SQLAlchemy 封装,支持常用 ORM 操作
  • 提供简洁的上下文管理和会话管理
  • 支持枚举类型映射
  • 便于扩展和集成到现有项目

安装

pip install ff-sqlalchemy

快速开始

from enum import Enum
from datetime import datetime
from sqlalchemy import create_engine, select, Column, Integer, String, DateTime

from ff_sqlalchemy import ContextManager
from ff_sqlalchemy.orm import Base, BaseModel
from ff_sqlalchemy.session import Session
from ff_sqlalchemy.types import DbStrPyEnum


class Status(Enum):

    ENABLE = 'enable'
    DISABLE = 'disable'

class User(BaseModel):
    
    __tablename__ = 'users'

    id = Column(Integer, primary_key=True)
    name = Column(String(20))
    status = Column(DbStrPyEnum(enum_class=Status), default=Status.ENABLE)
    created_at = Column(DateTime, default=datetime.now())

def add_user(user_id:int, name: str):
    with Session() as session:
        with session.begin():
            session.add(User(id=user_id, name=name))

def get_user(user_id:int):
    with Session() as session:
        return session.scalar(select(User).where(User.id == 1))

if __name__ == "__main__":

    engine = create_engine("sqlite:///:memory:", echo=False)
    Base.metadata.create_all(engine)
    ContextManager.init(engine=engine)

    add_user(user_id=1, name="foris")
    user = get_user(user_id=1)

    print(user.to_dict())
    # {id: 1, name: "foris", status: "enable", created_at: "xxxx-xx-xx xx:xx:xx"}

更多示例

请参考 tests 目录下的用例,涵盖模型定义、增删查改、事务管理等场景。

贡献指南

欢迎提交 Issue 或 PR,完善功能或修复问题。请确保代码风格与项目保持一致,并补充必要的测试。

License

MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

ff_sqlalchemy-0.1.0.tar.gz (8.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

ff_sqlalchemy-0.1.0-py2.py3-none-any.whl (8.7 kB view details)

Uploaded Python 2Python 3

File details

Details for the file ff_sqlalchemy-0.1.0.tar.gz.

File metadata

  • Download URL: ff_sqlalchemy-0.1.0.tar.gz
  • Upload date:
  • Size: 8.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.11

File hashes

Hashes for ff_sqlalchemy-0.1.0.tar.gz
Algorithm Hash digest
SHA256 20b003118f21cfec11d54c89b0ed1f580927ff54596111d0770bf9032a5e4586
MD5 5a4c12aebac1ebf6e3cb81f896be13b3
BLAKE2b-256 eacba24197af0f09fa31d37b48869502c8ad67254492b50ee31bfc2c6a477902

See more details on using hashes here.

File details

Details for the file ff_sqlalchemy-0.1.0-py2.py3-none-any.whl.

File metadata

File hashes

Hashes for ff_sqlalchemy-0.1.0-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 0578801130ec8b605c069e193a92798c39011057454c8b9c2820a30a9de82b22
MD5 7ac3aa8ed66ee65cb2962bf559ed1f8a
BLAKE2b-256 355a2735a98be684c323e861390e1c21d42a6a38d9008d99f76ef1a6048af36d

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page