Package: lbTool
模块介绍通用模块 lbTool.Common内含：MD5加密、解析XML配置文件数据库操作模块 lbTool.Db依赖于pony包实现，以oracle连接串演示。目前支持（mysql/oracle）fromlbTool.Dbimport*# 依靠config.yml配置文件获取连接参数，可查看下方配置文件区域# 创建连接 此方式可用可不用# db_con = Database("oracle", user="user", password="pwd", dsn='host:port/sid')# 现已支持oracle、mysql自动生成实体# 获取连接 目前支持oracle/mysqldb_con=get_orm_con()# 定义实体（不指定_table_则默认类名为表名，oracle模式名和表名需大写）# max_len属性针对单个字段设置最大值，目前默认为1000，当字段值太长时，执行修改会报错classTest(db_con.Entity):_table_=("模式名","表名")id=PrimaryKey(int)name=Optional(str,max_len=2000)age=Optional(int)# 自动生成实体类# 1.oracle/mysql通用：直接传入当前用户的表名entity1=generate_pony_entity("demo",db_con)# 2.指定模式+表名（目前仅oracle）entity2=generate_pony_entity("schema.demo",db_con)# 获取封装操作实例 方式1db=Db(db_con,is_create_table=False,show_sql=True)# 查询data=db.query(Test,id=1)# 初始化Db方式操作 方式2init_db(db_con)# 根据主键查询result=Test[1]达梦数据库操作模块 lbTool.DmDb依赖dmPython2.0实现，支持语句，自动生成实体，上下文管理器fromlbTool.DmDbimport*# 依靠config.yml配置文件获取连接参数，可查看下方配置文件区域# 添加自动生成实体，便捷使用增删查改# 获取数据库连接1# db = DmDatabase('ip:port', 'user', 'password')# 获取数据库连接2db=get_dm_con()# 1.语句方式使用# 查询sql="select * from test where id=1"data=db.query(sql)sql1="select * from test where id=?"data1=db.query(sql1,1)sql2="select * from test where id=:id"data2=db.query(sql2,id=1)# 查询列表data_list=db.query_list(sql)...# 执行语句up_sql="update test set name=2"db.execute(up_sql)# 2.自动生成实体使用entity=generate_dm_entity("table_name",db)# 查询单条d1=entity.query(id=1)# 查询多条d2=entity.query_list(name='22')# 分页查询d3=entity.query_page_list(1,10,name="22")# 修改d1.name='222'entity.update(d1)entity.update_dict(id=1,name='222')# 参数需提供主键值# 新增entity.insert(id=3,name='555')# 删除entity.delete(id=2)# 事务控制try:db.begin()entity.update(d1)entity.update(d2)db.commit()exceptRuntimeErrorase:db.rollback()# 上下文管理器方式操作，无需手动调用事务提交，回滚withdm_sessionasdb2:entity=generate_dm_entity("table_name",db2)d5=entity.query(id=3)d5.name='666'entity.update(d5)...AES/SM4加密模块 lbTool.EnCipherAESfromlbTool.EnCipherimportAesUtilaes_key="aes_key"aes_iv="aes_iv"plaintext="123"aes_ciphertext=AesUtil.encrypt_cbc(aes_key,aes_iv,plaintext)print("AES加密后===",aes_ciphertext)aes_plaintext=AesUtil.decrypt_cbc(aes_key,aes_iv,aes_ciphertext)print("AES解密后===",aes_plaintext)SM4fromlbTool.EnCipherimportSm4Utilsm4_key="sm4_key"plaintext="123"sm4_ciphertext=Sm4Util.encrypt_ecb(sm4_key,plaintext)print("SM4加密后===",sm4_ciphertext)sm4_plaintext=Sm4Util.decrypt_ecb(sm4_key,sm4_ciphertext)print("SM4解密后===",sm4_plaintext)文件操作模块 lbTool.FileUtil内含：数据流写文件，合并PDF，Word转PDF日志操作模块 lbTool.Logging默认在程序所在目录新建 Log/app_yyyymmdd.log 日志文件fromlbTool.LoggingimportLogger# 依靠log.yml配置文件获取参数，可查看下方配置文件区域# 获取日志处理器 默认fileLogger文件输出,为空则控制台输出logger=Logger()logger.info("xxx")配置文件放在项目根路径config目录中 config.yml、log.ymlconfig/config.yml点击查看具体代码database:driver:oraclehost:localhostport:1521user:userpassword:passworddb_name:orcl#  driver: mysql#  host: localhost#  port: 3306#  user: user#  password: password#  db_name: democonfig/log.yml点击查看具体代码# DEBUG->INFO->WARNING->ERROR->CRITICALversion:1disable_existing_loggers:Falseformatters:simple:format:"%(asctime)s[%(levelname)s]-%(message)s"full:format:"%(asctime)s[%(levelname)s]%(filename)s->%(funcName)s|%(lineno)d-%(message)s"#    datefmt: "%F %T"handlers:console:class:logging.StreamHandlerlevel:DEBUGformatter:fullfile_handler:class:logging.handlers.RotatingFileHandlerlevel:DEBUGformatter:simplefilename:"app.log"maxBytes:5242880backupCount:1encoding:"utf8"loggers:fileLogger:level:DEBUGhandlers:[file_handler]propagate:noroot:level:DEBUGhandlers:[console]propagate:no