SQLAlchemy备忘

orm备忘

  • upsert,存在及更新,不存在则插入
from sqlalchemy.dialects.mysql import insert

insert_stmt = insert(FileModule).values(file_path=par_dict.file, module_key=par_dict.module_key,
                                                module_name=par_dict.module_name, project_id=par_dict.project_id)
on_duplicate_key_stmt = insert_stmt.on_duplicate_key_update(module_key=par_dict.module_key,
                                                            module_name=par_dict.module_name)
db.execute(on_duplicate_key_stmt)
db.commit()
# FileModule是实体类,file和project_id组成唯一索引

https://docs.sqlalchemy.org/en/20/dialects/mysql.html#mysql-insert-on-duplicate-key-update
https://segmentfault.com/a/1190000042750099

  • sql in 用法
CoverageReport.report_id.in_(query_param.report_ids)
  • 模糊查询
if query_param.main_thread_stack:
    filters.add(LogInfo.main_thread_stack.like('%' + query_param.main_thread_stack + '%'))
  • python列表字典实现同名列相加
import collections
import functools
import operator
...
batch_map_add.append({"branches": file_detail['branch_covered'],
                      "total_branches": file_detail['branch_total'],
                      "functions": file_detail['function_covered'],
                      "total_functions": file_detail['function_total'],
                      "lines": file_detail['line_covered'],
                      "total_lines": file_detail['line_total']
                      })
...
result = dict(functools.reduce(operator.add,
                               map(collections.Counter, batch_map_add)))
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Loganer

感谢

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值