python存储库模式实现

repka的Python项目详细描述


雷普卡

python存储库模式实现

安装

通过PIP:

pip install repka

通过诗歌:

poetry add repka

用法

fromtypingimportAnyimportsqlalchemyassafromaiopg.saimportcreate_enginefromrepka.apiimportBaseRepository,IdModel# Define SA tablemetadata=sa.MetaData()transactions_table=sa.Table("transactions",metadata,sa.Column("id",sa.Integer,primary_key=True,autoincrement=True),...)# Define pydantic modelclassTransaction(IdModel):...# Define repositoryclassTransactionRepo(BaseRepository):table=transactions_tabledefdeserialize(self,**kwargs:Any)->Transaction:returnTransaction(**kwargs)# Create SA connectionconnection_params=dict(user='aiopg',database='aiopg',host='127.0.0.1',password='passwd')asyncwithcreate_engine(**connection_params)asengine:asyncwithengine.acquire()asconn:# Instantiate repository repo=TransactionRepo(conn)# Now you can use the repo# Here we select first matching row from table and convert it to modeltransaction=awaitrepo.first(transactions_table.c.id==1)

测试

运行测试:

  1. 通过DATABASE_URL环境变量设置database url

警告:每次测试运行都将从数据库中删除所有表

  1. 通过pytest
  2. 运行测试

贡献

  1. 为新功能/修复/任何内容创建分叉/分支

  2. 安装预提交挂钩:pre-commit install(对于手动预提交运行,请使用pre-commit run -a

  3. 完成创建拉取请求并等待批准后

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
来自Java库的文件上载更改提示错误消息   java如何使用Hibernate自动释放游标?   java Eclipse远程开发,有哪些选项?   在IBM Websphere 8中使用axis2(Sales Force)访问web服务时出现java异常   翻译如何从java翻译网页?   java Spring MongoRepository#findall:ConverterNotFoundException   使用Ecplipse导出时,java无法使我的程序可执行   Java:ArrayList。清除从传递到映射的ArrayList中删除元素   javascript在@RequestBody中如何防止java spring启动中出现盲目XSS   dcoder中hello world教程的java问题   java Android内存不足事件   用于从模板生成对象的JavaEJB3.1模式   java如何使DatePickerDialog在更改屏幕方向时保持选定的用户日期?   未收到python Java HTTP cookies   java Google驱动器脚本不工作,