一、笔记说明
- 本博客专栏《Python数据库基础》的所有笔记均为.py格式文件,复制后均可无误执行(注意修改文件路径,每个人的工作区不一样)。但鉴于数据库的特殊性,很多代码需要新建相同的本地数据库,这很耽误时间且对学习意义不大,建议对数据库类代码以借鉴为辅,自我实践为主。
- 对数据库代码,请在Ubuntu18.04系统命令行下进行实践,可确保代码无误。《Python数据库基础》中SQL语言的编写标准是按照MySQL进行的,另外,本专栏还包含对Redis和mangoDB的基础操作介绍。
- 代码运行环境Python3.7.9,建议使用Pycharm2020.1作为编辑器,使用Anaconda3作为包管理器。
二、代码部分
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)
print(t)
t1=t.timestamp()
print(t1)
print(t_now.max)
print(t_now.min)
t1=t.strftime("%y-%m-%d %H:%M:%S")
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(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)
sh=logging.StreamHandler()
sh.setLevel(logging.INFO)
formatter=logging.Formatter(
"时间:%(asctime)s"
"日志级别:%(levelname)s"
"日志消息:%(message)s")
sh.setFormatter(formatter)
logger.addHandler(sh)
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"
)
logging.debug("msg1")
logging.info("msg2")
logging.warning("msg3")
logging.error("msg4")
logging.critical("msg5")
三、转载说明
- 本文内容完全原创,文章完成时间2021.3.19。
- 若要转载本文,请在转载文章末尾附上本文链接:https://blog.csdn.net/qq_35772105/article/details/115006255
- 本文代码部分唯一MD5:FC6066B05D870FCEAD16AA5B2962873D。