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
Release history Release notifications | RSS feed
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)
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
20b003118f21cfec11d54c89b0ed1f580927ff54596111d0770bf9032a5e4586
|
|
| MD5 |
5a4c12aebac1ebf6e3cb81f896be13b3
|
|
| BLAKE2b-256 |
eacba24197af0f09fa31d37b48869502c8ad67254492b50ee31bfc2c6a477902
|
File details
Details for the file ff_sqlalchemy-0.1.0-py2.py3-none-any.whl.
File metadata
- Download URL: ff_sqlalchemy-0.1.0-py2.py3-none-any.whl
- Upload date:
- Size: 8.7 kB
- Tags: Python 2, Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.11
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0578801130ec8b605c069e193a92798c39011057454c8b9c2820a30a9de82b22
|
|
| MD5 |
7ac3aa8ed66ee65cb2962bf559ed1f8a
|
|
| BLAKE2b-256 |
355a2735a98be684c323e861390e1c21d42a6a38d9008d99f76ef1a6048af36d
|