智能体测开Day33

发布时间:2026/7/25 7:40:35
智能体测开Day33 db 数据库的三个基本封装 1链接数据库 2执行sql语句 3关闭数据库 import pymysql # 获取链接对象 def my_connect(dbinfo): try: conn pymysql.connect(userdbinfo[user], passworddbinfo[pwd], hostdbinfo[host], portdbinfo[port], databasedbinfo[database], charsetdbinfo[charset]) print(数据库链接成功) return conn except Exception as e: print(f数据库链接失败{e}) # 执行sql操作 def my_execute(conn,sql): try: # 链接对象获取游标对象 cs conn.cursor() # 游标可以去执行sql语句 # sql select * from stu # sql update stu set nametom1 where id 1 cs.execute(sql) # 提交 conn.commit() # 游标获取sql语句的返回信息 r cs.fetchall() print(f执行sql语句{sql}成功) return r except Exception as e: print(f执行sql语句{sql}出错) # 关闭 def my_close(conn): try: conn.close() print(f关闭数据库成功) except Exception as e: print(f关闭数据库失败) # 删除所有用户除了admin def delete_all(dbinfo): con my_connect(dbinfo) sql delete from sys_user where account ! admin my_execute(con,sql) my_close(con) # 添加信息 根据用户名和邮箱 def insert_by_account_and_email(dbinfo,account,email): con my_connect(dbinfo) sql fINSERT INTO ranzhi.sys_user (dept, account, password, realname, role, nickname, admin, avatar, birthday, gender, email, skype, qq, yahoo, gtalk, wangwang, site, mobile, phone, address, zipcode, visits, ip, last, ping, fails, join, locked, deleted, status) VALUES ( 0, {account}, c7122a1349c22cb3c009da3613d242ab, admin, , , super, , 2000-02-02, u, {email}, , , , , , , , , , , 304, 127.0.0.1, 2026-07-23 17:10:25, 2026-07-23 17:27:54, 0, 2026-05-08 10:44:58, 2000-10-10 10:02:02, 0, offline); my_execute(con,sql) my_close(con) # 根据用户名删除信息 def delete_by_account(dbinfo,account): con my_connect(dbinfo) sql fdelete from sys_user where account {account} my_execute(con,sql) my_close(con) if __name__ __main__: dbinfo {user: root, pwd: 123456, host: 127.0.0.1, port: 3306, database: ranzhi, charset: utf8} # delete_by_account(dbinfo,aaa) # delete_all(dbinfo) insert_by_account_and_email(dbinfo,111,kasdfdsjf.com)logger日志处理器 1)python的内置库logging 用来管理日志 2日志的级别debug info warning error critical DEBUG 最详细的日志级别输出程序运行时的内部状态和变量值 主要用于开发阶段的调试和问题诊断 生产环境通常关闭此级别日志 INFO 记录程序正常运行的关键节点信息 用于确认系统按预期工作如服务启动、配置加载等 适合生产环境的基础监控 WARNING 表示非预期但可恢复的异常情况 例如磁盘空间不足、网络延迟等潜在问题 程序仍能继续运行但需要关注 ERROR 标记功能模块执行失败的重要错误 如数据库连接失败、API调用异常等 需要立即干预但不会导致程序终止 CRITICAL 最高级别表示系统级致命错误 例如内存溢出、关键服务崩溃等 通常会导致程序不可恢复地终止运行 3日志默认级别warning,日志中的内容是向上兼容的设置级别为info,日志中的内容info warning error critical import logging import sys from ranzhiProject.caw.read_file import get_project_path class Logger: def __init__(self): # 创建日志对象 self.logger logging.getLogger() self.logger.setLevel(INFO) def console(self,levle,message): 日志对象需要设置处理器handlerhandler决定了日志打印在控制台还是写入文件中,日志的格式等 文件日志处理器FileHandler有了他日志就能写入文件中了 filename‌日志文件路径及名称支持绝对/相对路径 mode‌文件打开模式默认追加模式 a或覆盖写入模式 w encoding‌文件编码格式默认系统编码可指定为 utf-8 控制台打印日志处理器 StreamHandler能将日志打印在控制台 #文件日志处理器FileHandler filename get_project_path() \\ logs\\log.txt filehandler logging.FileHandler(filenamefilename,modea,encodingutf-8) # 日志的打印格式 formater logging.Formatter([%(asctime)s]-[%(filename)s]-[%(levelname)s]:%(message)s) filehandler.setFormatter(formater) # 日志对象添加处理器 self.logger.addHandler(filehandler) #控制台打印日志处理器 StreamHandler syshandler logging.StreamHandler(sys.stdout) syshandler.setFormatter(formater) self.logger.addHandler(syshandler) if levle DEBUG: self.logger.debug(message) elif levle INFO: self.logger.info(message) elif levle WARNING : self.logger.warning(message) elif levle ERROR or levleError: self.logger.error(message) else: self.logger.critical(message) # 为避免重复打印日志要移除处理器handler self.logger.removeHandler(filehandler) self.logger.removeHandler(syshandler) # 关闭文件处理器 filehandler.close() def debug(self,message): self.console(DEBUG,message) def info(self,message): self.console(INFO, message) def warning(self,message): self.console(WARNING, message) def error(self,message): self.console(ERROR, message) def critical(self,message): self.console(CRITICAL, message) if __name__ __main__: logger Logger() logger.info(this is info) logger.debug(this is debug) logger.warning(this is warning) logger.error(this is error) logger.critical(this is critical)