Python数据库基础 笔记11

一、笔记说明

  1. 本博客专栏《Python数据库基础》的所有笔记均为.py格式文件,复制后均可无误执行(注意修改文件路径,每个人的工作区不一样)。但鉴于数据库的特殊性,很多代码需要新建相同的本地数据库,这很耽误时间且对学习意义不大,建议对数据库类代码以借鉴为辅,自我实践为主
  2. 对数据库代码,请在Ubuntu18.04系统命令行下进行实践,可确保代码无误。《Python数据库基础》中SQL语言的编写标准是按照MySQL进行的,另外,本专栏还包含对Redis和mangoDB的基础操作介绍。
  3. 代码运行环境Python3.7.9,建议使用Pycharm2020.1作为编辑器,使用Anaconda3作为包管理器。

二、代码部分

# 11.py

import time
print("begin")
time.sleep(0.5)#停止两秒
print("end")
print(time.time())#获取时间戳

print("datetime模块")
print("1.datetime模块常用类:"
      "date           year, month, day"
      "time           hour,minute,second,毫秒"
      "datetime       hour, minute, second, microsecond"
      "timedelta      时间间隔"
      "注:日期必须在1970后,不然python不承认")

import datetime
t_now=datetime.datetime.now()
print(t_now)#获取现下时间
t=datetime.time(12,15,55,1)
print(t)
t=datetime.date(2018,3,29)
print(t)
t=datetime.datetime(2018,3,29,12,15,55,1)#各个参数必须在合法范围内,不能超限,如分钟不能为80;

print(t)
#将时间对象转换为时间戳
t1=t.timestamp()
print(t1)
print(t_now.max)
print(t_now.min)
#把时间日期对象转换为字符串
t1=t.strftime("%y-%m-%d %H:%M:%S")#要加入ymd,HMS属性符号;12小时制用I,此处输入固定格式;
print(t1)
#把字符串对象转换为时间日期
t1=t.strptime(t1,"%y-%m-%d %H:%M:%S")
print(t1)
td=datetime.timedelta(hours=1,minutes=40,seconds=12)
print("手动设置时间点",td)

print("2.函数:"
      "获取当前日期时间:datetime.now();"
      "日期时间转化为时间戳:时间日期对象.timestamp();                例如:datetime.now().timestamp()"
      "时间戳转化为日期时间:datetime.fromtimestamp(时间戳)           例如: datetime.fromtimestamp(1534231316.796308)"
      "日期时间对象转字符串:时间日期对象.strftime(format)            例如: datetime.now().strftime(‘%Y-%m-%d’)"
      "字符串转日期时间对象:datetime.strptime(data_str, format)      例如: datetime.strptime('2018-3-22  15:28:18', '%Y-%m-%d  %H:%M:%S')")

print("3.格式字符常用格式:"
      "年    %Y,%y"
      "月    %m"
      "日    %d"
      "时    %H,%h"
      "分    %M"
      "秒    %S")

print("logging模块:日志模块")
print("1.方法:"
      "创建一条level级别的日志:logging.level(message)"
      "对logger进行配置:logging.basicConfig()")

print("2.日志等级:"
      "DEBUG:调试信息,通常在诊断问题的时候用得着"
      "INFO:普通信息,确认程序按照预期运行"
      "WARNING:警告信息,表示发生意想不到的事情,或者指示接下来可能会出现一些问题,但是程序还是继续运行"
      "ERROR:错误信息,程序运行中出现了一些问题,程序某些功能不能执行"
      "CRITICAL:危险信息,一个严重的错误,导致程序无法继续运行")

print("3.Formatter格式:"
      "%(asctime)s	        日志事件发生的时间"
      "%(levelname)s	    该日志记录的日志级别"
      "%(message)s	        日志记录的文本内容"
      "%(name)s	            所使用的日志器名称,默认是'root'"
      "%(pathname)s	    调用日志记录函数的文件的全路径"
      "%(filename)s	    调用日志记录函数的文件"
      "%(funcName)s	    调用日志记录函数的函数名"
      "%(lineno)d       	调用日志记录函数的代码所在的行号")

print("4.配置日志器组件:"
      "Loggers(日志记录器)	      提供程序直接使用的接口"
      "Handlers(日志处理器)      将记录的日志发送到指定的位置"
      "Filters(日志过滤器)	      用于过滤特定的日志记录"
      "Formatters(日志格式器)	  用于控制日志信息的输出格式")

print("5.模块化组件使用步骤:"
      "5.1创建一个logger(日志处理器)对象"
      "5.2定义handler(日志处理器),决定把日志发到哪里"
      "5.3设置日志级别(level)和输出格式Formatters(日志格式器)"
      "5.4把handler添加到对应的logger中去")

import logging
# logging.basicConfig(filename="hansha.log",level=logging.DEBUG)
# logging.debug("this is debug!")
# logging.info("this is info!")
# logging.warning("this is warning!")

logging.basicConfig(format="日志级别:%(levelname)s\n"
                           "日志内容:%(message)s",level=logging.DEBUG)#不达到级别不写入
logging.debug("this is debug!")
logging.info("this is info!")
logging.warning("this is warning!")

#初始化
logger=logging.getLogger("hansha")

#第一次设置级别,没到级别不记录
logger.setLevel(logging.DEBUG)

#定义handler,设置文件或控制台实处方式
sh=logging.StreamHandler()
#第二次设置级别
sh.setLevel(logging.INFO)

#格式化输出
formatter=logging.Formatter(#写入format格式3
    "时间:%(asctime)s"
    "日志级别:%(levelname)s"
    "日志消息:%(message)s")

#把格式添加到管理者上
sh.setFormatter(formatter)

#给logger对象添加管理者
logger.addHandler(sh)

# 捕获异常并且输入到logger内
if __name__=='__main__':
    try:
        a=1/0
    except Exception as e:
        logger.error(e)
        print(e)
        logger.error("division by zero")

#过滤器
f=logging.Filter("hansha")
sh.addFilter(f)

#标准日志代码
import logging
LOG_FORMAT = "%(asctime)s %(name)s %(levelname)s %(pathname)s %(message)s "#配置输出日志格式
DATE_FORMAT = '%Y-%m-%d  %H:%M:%S %a ' #配置输出时间的格式,注意月份和天数不要搞乱了
logging.basicConfig(level=logging.DEBUG,
                    format=LOG_FORMAT,
                    datefmt = DATE_FORMAT ,
                    filename=r"d:\test\test.log" #有了filename参数就不会直接输出显示到控制台,而是直接写入文件
                    )
logging.debug("msg1")
logging.info("msg2")
logging.warning("msg3")
logging.error("msg4")
logging.critical("msg5")

三、转载说明

  1. 本文内容完全原创,文章完成时间2021.3.19。
  2. 若要转载本文,请在转载文章末尾附上本文链接:https://blog.csdn.net/qq_35772105/article/details/115006255
  3. 本文代码部分唯一MD5:FC6066B05D870FCEAD16AA5B2962873D。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

魔菲赫伯特

你的鼓励将是我创作的最大动力

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

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

打赏作者

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

抵扣说明:

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

余额充值