Flask使用flask_sqlalchemy操作MySQL

在flask_sqlalchemy中,查询操作是通过query对象操作数据。最基本的查询是返回表中所有数据,可以通过过滤器进行更精确的数据库查询。数据库会话也可以回滚,通过db.session.rollback()方法,实现会话提交数据前的状态。之前写了一个sqlalchemy的对象关系映射操作mysql的教程:https://sulao.cn/post/610.html,现在更新一个flask下的flask_qlalchemy,用起来其实是和sqlalchemy一样的,只是有些微区别,整体用起来更加简单,主要是我用的vscode,用起来静态检查老是报错...

阅读全文

Python3进程间通信方法queue

之前将了多线程的实例可以查看之前的笔记:https://sulao.cn/post/609.html,由于多线程中进程资源是共享的,所以传入queue队列,由各子线程去queue队列中获取资源,现在在多进程中已经不适用,因为多进程中会为每个子进程拷贝一份资源,所以不能继续按照多线程的方式来撰写代码,解决方法是多进程multiprocessing模块中也有queue方法,此queue方法不是之前讲的queue方法,我们来看看代码:#!/usr/bin/python3#coding:utf-8from urllib import&...

阅读全文

python3 logging模块详解

很多程序都有记录日志的需求,并且日志包含的信息有正常的程序访问日志还可能有错误,警告等信息输出,python的logging模块提供了标准的日志接口,可以通过它存储各种格式的日志,日志级别等级:critical>error>warning>info>debug看下各个日志级别代表什么意思:import logginglogging.basicConfig(filename='app.log',level=logging.DEBUG,format='%(asctime)s&nbs...

阅读全文

python3多进程实例详解

刚写完多线程的笔记没几天,可以看看我之前的多线程IO密集型操作实例详解:https://sulao.cn/post/609.html多进程和多线程的区别在于,多线程是一组资源由所有子线程共享,当其中一个子线程修改共享资源的变量,那么所有子线程获取到的共享资源变量就会改变,当其中一个线程崩溃会导致整个进程崩溃,多进程拷贝资源变量到每个子进程进行各自处理各自的任务,不受其他进程的影响,多进程的劣势是创建进程资源开销大,运行的进程数量也是有限的,进程过多会导致任务调度都会出现问题今天来把多进程也来做几个实例介绍下,本地目前没有这种场景,也是尽量写最简单最容易理...

阅读全文

python3筛选出日志中最多访问的前10个IP

bash脚本也能实现,现在用python3重写了下这个脚本,以后肯定用的上,直接看我的实践例子,用的是我博客的访问记录进行筛选的,直接上代码了:#!/usr/bin/python3#coding:utf-8l = []logs = {}with open('sulao.cn-access.log', 'r', encoding='utf-8') as f:   &nbs...

阅读全文

Python3使用SQLAlchemy(ORM)对象关系映射器操作MySQL

本地测试了下sqlalchemy,使用起来比较简单,直接来看我的代码吧,花了半天实践整理的,数据就是用的我的博客的#!/usr/bin/python3#coding:utf-8from sqlalchemy.ext.declarative import declarative_basefrom sqlalchemy import Column,Integer,String,and_,or_,create_enginefrom sqlalchemy.orm im...

阅读全文

python3多线程IO密集型操作实例详解

以前没写过多线程和多进程的笔记,自己抽空写了个实例,网上大多数的例子都是一样的,翻了百度几页都是几个计数器加时间打印出来,一般初学者也是很难看懂的Python解释器由于设计时有GIL全局锁,导致了多线程无法利用多核,实际使用的是单核CPU,使用抢占模式来执行任务,实际没有并行处理任务,所以实际场景当中和单线程没有太大的速度上的效果,同时多线程使用的资源都有所有线程来共享,所以我们再使用资源的时候需要加锁,以免当前线程修改资源的时候其他线程也来修改导致把数据改乱,我下面例子场景由于是中使用了queue队列,所以无需加锁来操作主要代码如下:#!/usr/bi...

阅读全文

python3使用base64将图片转码解码

工作中经常遇到,注意不是将图片名字和路径转码,而是将图片对象转码进行网络间传递,之前用了php写了一个,可以参考之前的笔记:https://sulao.cn/post/544.html现在主要的代码如下:将图片转码成base64#!/usr/bin/python3#coding:utf-8import base64def conv_bs64(image_path):    with open(image_path, 'rb') a...

阅读全文

python3使用xlwt模块操作excel

和读操作分开写了两份笔记,后面还需要更新一个更新excel的笔记,写入数据也基本就四步操作第一步:创建excel文件第二步:创建工作簿对象第三步:写入表头数据第四步:循环写入数据具体代码如下#!/usr/bin/python3#coding:utf-8import xlwt#创建excelbook = xlwt.Workbook(encoding='utf-8')#创建工作簿sheet = book.add_sheet(u'工作资料')#创建...

阅读全文

python3使用xlrd模块读取excel文件

自己操作使用了下,顺便记录,加深了解xlrd模块的使用方法,网上写的一大堆,我这里每一句的意思都进行了注释,方便理解,其实主要就三个步第一步:打开excel对象第二步:获取工作簿对象第三步:使用循环、cell、get_rows获取操作工作簿数据#!/usr/bin/python3#coding:utf-8import xlrdbook = xlrd.open_workbook(r'face.xls')#返回所有工作簿名称列表(list)print(books.sheet_names()...

阅读全文