Python编程进阶_11(Logging日志模块)
Logging日志模块1、logging日志的介绍在现实生活中,记录日志非常重要,比如:银行转账时会有转账记录;飞机飞行过程中,会有个黑盒子(飞行数据记录器)记录着飞机的飞行过程,那在咱们python程序中想要记录程序在运行时所产生的日志信息,怎么做呢?
可以使用 logging 这个包来完成
记录程序日志信息的目的是:
可以很方便的了解程序的运行情况
可以分析用户的操作行为、喜好等信息
方便开发人员检查bug
2、logging日志级别介绍日志等级可以分为5个,从低到高分别是:
DEBUG
INFO
WARNING
ERROR
CRITICAL
日志等级说明:
DEBUG:程序调试bug时使用
INFO:程序正常运行时使用
WARNING:程序未按预期运行时使用,但并不是错误,如:用户登录密码错误
ERROR:程序出错误时使用,如:IO操作失败
CRITICAL:特别严重的问题,导致程序不能再继续运行时使用,如:磁盘空间为空,一般很少使用
默认的是WARNING等级,当在WARNING或WARNING之上等级的才记录日志信息。
日 ...
Python编程进阶_10(初识Fastapi)
1234567891011121314151617181920212223242526272829303132333435# 导入FastAPI模块from fastapi import FastAPI# 导入响应报文Response模块from fastapi import Response# 导入服务器uvicorn模块import uvicorn# 创建FastAPI框架对象app = FastAPI()# 当请求为 /images/0.jpg 时, path ==> 0.jpg@app.get("/images/{path}")# 注意这里的参数需要设置为 path# path : str ==> 指定path为字符串类型的数据def get_pic(path: str): # 这里open()的路径就是 ==> f"source/images/0.jpg" with open(f"source/images/{path}", "rb&qu ...
Python - 初学爬取头像网图片
12345678910111213141516import requests, reurl = "https://www.bizhizj.com/nanstx/98925.html"response = requests.request("GET", url)response.encoding = 'utf-8'bizi = response.textp = ".*<div class=neirong_left_tx>(.*)<\/div>"z = re.findall(p, bizi)p = 'src="(.*?)" />'z = re.findall(p, z[0])for i in z: img = requests.request("GET", i) name = i[30:] print(name) with open(name, 'wb') as f: ...
Python编程进阶_09(生成器和yield关键字)
生成器的创建方式根据程序设计者制定的规则循环生成数据,当条件不成立时则生成数据结束
数据不是一次性全部生成出来,而是使用一个,再生成一个,可以节约大量的内存。
创建生成器的方式① 生成器推导式
② yield 关键字
☆ 生成器推导式与列表推导式类似,只不过生成器推导式使用小括号。
123456789# 创建生成器my_generator = (i * 2 for i in range(5))print(my_generator)# next获取生成器下一个值# value = next(my_generator)# print(value)# 遍历生成器for value in my_generator: print(value)
生成器相关函数:
12next 函数获取生成器中的下一个值for 循环遍历生成器中的每一个值
yield生成器yield 关键字生成器的特征:在def函数中具有yield关键字
12345678910111213141516def generator(n): for i in range(n): print('开 ...
Python编程进阶_08(深浅拷贝)
深浅拷贝☆ 几个概念
变量:是一个系统表的元素,拥有指向对象的连接空间
对象:被分配的一块内存,存储其所代表的值
引用:是自动形成的从变量到对象的指针
类型:属于对象,而非变量
不可变对象:一旦创建就不可修改的对象,包括字符串、元组、数值类型
(该对象所指向的内存中的值不能被改变。当改变某个变量时候,由于其所指的值不能被改变,相当于把原来的值复制一份后再改变,这会开辟一个新的地址,变量再指向这个新的地址。)
可变对象:可以修改的对象,包括列表、字典、集合
(该对象所指向的内存中的值可以被改变。变量(准确的说是引用)改变后,实际上是其所指的值直接发生改变,并没有发生复制行为,也没有开辟新的地址,通俗点说就是原地改变。)
当我们写:
1a = "python"
Python解释器干的事情:
① 创建变量a
② 创建一个对象(分配一块内存),来存储值 ‘python’
③ 将变量与对象,通过指针连接起来,从变量到对象的连接称之为引用(变量引用对象)
☆ 赋值赋值: 只是复制了新对象的引用,不会开辟新的内存空间。
并不会产生一个独立的对象单 ...
Linux - CentOS下添加环境变量的三种方法
在 Linux CentOS 系统上安装完Yarn后,为了使用方便,需要将Yarn命令加到系统命令中,如果在没有添加到环境变量之前,执行“yarn”命令时,则会提示命令不存在的错误
下面介绍一下在 linux 下添加环境变量的三种方法
以将 MATLAB 加入到环境变量中为例子(MATLAB 安装在 /usr/local/MATLAB/R2013a/bin 目录下)。
方法一(暂时生效)直接运行命令export PATH=$PATH:/usr/local/MATLAB/R2013a/bin ,使用这种方法,只会对当前回话生效,也就是说每当登出或注销系统以后,PATH 设置就会失效,只是临时生效。
方法二(只对当前登陆用户生效,永久生效)执行 vim ~/.bash_profile 修改文件中 PATH 一行,将 /usr/local/MATLAB/R2013a/bin 加入到 PATH=$PATH:$HOME/bin 一行之后(注意以冒号分隔),保存文件并退出,执行 source ~/.bash_profile 使其生效,这种方法只对当前登陆用户生效。看到如下图便可知环境变量加入成功: ...
Python - 记一次FastAPI跨域问题
使用FastAPI开发接口时,跨域调用报错如下:
1Access to XMLHttpRequest at 'http://xxxxxxxxxx' from origin 'null' has been blocked by CORS policy: Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource.
解决方案:
12345678910from fastapi import FastAPIfrom fastapi.middleware.cors import CORSMiddlewareapp = FastAPI()app.add_middleware( CORSMiddleware, allow_origins=["*"],#允许进行跨域请求的来源列表 ...
Python编程进阶_07(线程和进程)
Python进程和线程学习目标1、了解多任务的概念
2、了解进程的概念以及多进程的作用
3、掌握多进程完成多任务的工作原理及案例编写
4、掌握进程编号的获取方式以及进程使用的注意事项
5、了解线程的概念以及多线程的作用
6、掌握多进程完成多任务的工作原理及案例编写
7、了解互斥锁以及死锁的概念
一、多任务的概念1、举个栗子
思考:我们在使用网盘下载资料的时候,为什么要多个任务同时下载呢?
答:多个任务同时执行可以大大提高程序的执行效率
2、提出问题问题:利用我们目前所学的技术,我们能否实现多任务操作呢?
答:不能,因为之前所写的程序都是单任务的,也就是说一个函数或者方法执行完成 , 另外一个函数或者方法才能执行。要想实现多个任务同时执行就需要使用多任务。多任务的最大好处是充分利用CPU资源,提高程序的执行效率。
3、什么是多任务多任务是指在同一时间内执行多个任务。
例如: 现在电脑安装的操作系统都是多任务操作系统,可以同时运行着多个软件。
4、多任务的两种表现形式① 并发
② 并行
5、并发操作并发:在一段时间内交替去执行多个任务。
例如:对于单核cpu处理多任务,操作系统轮流让各个 ...
前端HTML5+CSS基础知识
众所周知: 不懂前端的后端不是好程序员
安装VScode官网:https://code.visualstudio.com/安装最新稳定版就行
基本结构
第一行是文档声明, 用来指定页面所使用的html的版本, 这里声明的是一个html5的文档。
...标签是开发人员在告诉浏览器,整个网页是从这里开始的,到结束,也就是html文档的开始和结束标签。
...标签用于定义文档的头部,是负责对网页进行设置标题、编码格式以及引入css和js文件的。
...标签是编写网页上显示的内容。
常用标签标题标签123<h1>这是1个标题。</h1><h2>这是2个标题。</h2><h3>这是3个标题。</h3>
分隔标签1<hr>
段落标签12<p>这是一个段落 </p><p>这是另一个段落</p>
折行标签1<p>这个<br>段落<br>演示了分行的效果</p>
文字相关标签123456789 ...
Python编程进阶_06(初始pymysql操作数据库)
增删改查12345678910111213141516171819202122232425import pymysqltxwin_mysql = pymysql.connect(host='xxxx', user='root', password='xxx', database='xxx')# 获取游标对象cursor = txwin_mysql.cursor()sql = 'SELECT * FROM `data` WHERE department=\'xxx\';'try: result = cursor.execute(sql) txwin_mysql.commit() # print(cursor.fetchall()) ''' etchone( ...