Python多进程/多线程锁Lock的使用实例详解

之前的笔记讲的过程中一般都是使用queue队列来进行线程或者进程间进行通信或者资源的调配,但是我们大部分多进程和多线程的场景还是需要用到进程锁和线程锁,直接上例子,例子还是之前的csv模块用法的笔记:https://sulao.cn/post/597.html,还有python3进程间通信queue的用法https://sulao.cn/post/616.html这两个笔记的例子上改的,非百度copy的例子多进程代码实例:#!/usr/bin/python3#coding:utf-8from multiprocessing i...

阅读全文

Flask全局对象g使用的简单例子

我们在flask一个请求内,也许是是一个具体视图函数内的请求,g变量是有效的,那么你设置一般变量也是可以的啊,为啥要专门设置一个全局变量呢,其实我们在这个视图函数内使用其他函数的时候,其他函数如果是有参数的话,需要我们传递进去的,但是使用了全局变量g的话,相当于global var在这次请求了注册了一个全局变量,那么他的作用域,使用期限都仅限于此次的请求,在这个请求内所有调用的函数都可以使用此全局变量,请求结束,g变量即销毁,最后我理解是为啥要这么搞? 下面上一个我的例子,不是百度copy的。#!/usr/bin/python3...

阅读全文

Flask中session的使用方法

Flask中使用session非常简单,只需要简单导入模块就可以开始使用了,我们直接来看例子吧。#!/usr/bin/python3#coding:utf-8from flask import Flask,sessionapp = Flask(__name__)app.config['SECRET_KEY'] = 'merci'@app.route('/')def index(): &n...

阅读全文

Flask使用flask_mail模块发送邮件实例

之前写过一个python使用SMTP服务发送邮件的笔记,地址是https://sulao.cn/post/598.html,flask中也有相关的模块,我们只需要简单的安装配置即可使用首先pip安装模块pip install flask_mail接着直接上我的实例代码吧#!/usr/bin/python3#coding:utf-8from flask import Flaskfrom flask_mail import Mail,Messageapp ...

阅读全文

python3操作消息队列中间件Kafka

Kafka是一种高吞吐量的分布式发布订阅消息系统,它可以处理消费者规模的网站中的所有动作流数据。这种动作(网页浏览,搜索和其他用户的行动)是在现代网络上的许多社会功能的一个关键因素。这些数据通常是由于吞吐量的要求而通过处理日志和日志聚合来解决。对于像Hadoop的一样的日志数据和离线分析系统,但又要求实时处理的限制,这是一个可行的解决方案。Kafka的目的是通过Hadoop的并行加载机制来统一线上和离线的消息处理,也是为了通过集群来提供实时的消费。特性:通过O(1)的磁盘数据结构提供消息的持久化,这种结构对于即使数以TB的消息存储也能够保持长时间的...

阅读全文

Flask使用flask_socketio将信息时时推送前台

flask_socketio模块实际上是封装了flask对websocket的支持,websocket在连接建立阶段是通过HTTP的握手方式进行的,这可以看做是为了兼容浏览器或者使用一些现成的功能来实现,这样一种捷径。当连接建立之后,客户端和服务端之间就不再进行HTTP通信了,所有信息交互都由websocket接管。Flask-SocketIO使Flask应用程序可以访问客户端和服务器之间的低延迟双向通信,使客户端建立与服务器的永久连接。flask_socketio适用于后台产生新的数据,需要在前台页面马上展示出来,例如数据监控、统计图实时变化更新等。首...

阅读全文

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多进程和多线程的区别在于,多线程是一组资源由所有子线程共享,当其中一个子线程修改共享资源的变量,那么所有子线程获取到的共享资源变量就会改变,当其中一个线程崩溃会导致整个进程崩溃,多进程拷贝资源变量到每个子进程进行各自处理各自的任务,不受其他进程的影响,多进程的劣势是创建进程资源开销大,运行的进程数量也是有限的,进程过多会导致任务调度都会出现问题今天来把多进程也来做几个实例介绍下,本地目前没有这种场景,也是尽量写最简单最容易理...

阅读全文