10 2017 档案
python SQLAchemy多外键关联
摘要:关联同一张表的两个字段 Customer表有2个字段都关联了Address表 orm_many_fk.py 只创建表结构 orm_api.py 添加数据。查询 查询结果 多对多关系 现在来设计一个能描述“图书”与“作者”的关系的表结构,需求是 此时你会发现,用之前学的外键好像没办法实现上面的需求了, 阅读全文
posted @ 2017-10-25 09:30 老榕树下的咖啡屋 阅读(836) 评论(0) 推荐(0)
python SQLAchemy外键关联
摘要:join 2 、join 这个要求A表和B表必须有FOREIGN KEY的关系才可以。 ORM实现外键约束 用户表、课程表、用户与课程中间表 以上先创建两张表 先看一个比较牛的东西:反查。通过设置的一个字段反向查询关联的表。关联表也可以根据这个字段查询当前表。双向反查。 首先 stu_id为Fore 阅读全文
posted @ 2017-10-24 16:42 老榕树下的咖啡屋 阅读(571) 评论(0) 推荐(0)
pip升级
摘要:升级命令: 升级失败恢复pip 阅读全文
posted @ 2017-10-24 15:28 老榕树下的咖啡屋 阅读(245) 评论(0) 推荐(0)
python SQLAchemy常用语法
摘要:SQLAlchemy是Python编程语言下的一款ORM框架,该框架建立在数据库API之上,使用关系对象映射进行数据库操作,简言之便是:将对象转换成SQL,然后使用数据API执行SQL并获取执行结果。 SQLAchemy下载 SQLAchemy使用 SQLAlchemy本身无法操作数据库,其必须以来 阅读全文
posted @ 2017-10-24 11:14 老榕树下的咖啡屋 阅读(2796) 评论(0) 推荐(0)
python RabbitMQ广播
摘要:消息公平分发 如果Rabbit只管按顺序把消息发到各个消费者身上,不考虑消费者负载的话,很可能出现,一个机器配置不高的消费者那里堆积了很多消息处理不完,同时配置高的消费者却一直很轻松。为解决此问题,可以在各个消费者端,配置perfetch=1,意思就是告诉RabbitMQ在我这个消费者当前消息还没处 阅读全文
posted @ 2017-10-20 13:43 老榕树下的咖啡屋 阅读(810) 评论(1) 推荐(1)
python RabbitMQ消息队列
摘要:RabbitMQ MQ全称为Message Queue, 消息队列(MQ)是一种应用程序对应用程序的通信方法。应用程序通过读写出入队列的消息(针对应用程序的数据)来通信,而无需专用连接来链接它们。消息传递指的是程序之间通过在消息中发送数据进行通信,而不是通过直接调用彼此来通信,直接调用通常是用于诸如 阅读全文
posted @ 2017-10-20 11:01 老榕树下的咖啡屋 阅读(652) 评论(0) 推荐(0)
python 协程
摘要:协程 协程,又称微线程,纤程。英文名Coroutine。一句话说明什么是线程:协程是一种用户态的轻量级线程。 协程拥有自己的寄存器上下文和栈。协程调度切换时,将寄存器上下文和栈保存到其他地方,在切回来的时候,恢复先前保存的寄存器上下文和栈。因此: 协程能保留上一次调用时的状态(即所有局部状态的一个特 阅读全文
posted @ 2017-10-19 10:41 老榕树下的咖啡屋 阅读(292) 评论(0) 推荐(0)
python 进程池的使用
摘要:进程同步 进程的数据是独立存在的,进程也能加锁。 运行结果 进程为什么要加锁? 因为进程的数据是独立存在的,并不会共享同一块数据。但是有些资源是共享的,比如显示器。如果每个进程都要输出内容,那么显示的就很乱了,这个锁就是在某个进程独自输出的时候独占,不会被其它进程干扰。 进程池 apply 同步执行 阅读全文
posted @ 2017-10-19 08:24 老榕树下的咖啡屋 阅读(804) 评论(0) 推荐(0)
python 多进程数据交互及共享
摘要:多线程和多进程最大的不同在于,多进程中,同一个变量,各自有一份拷贝存在于每个进程中,互不影响,而多线程中,所有变量都由所有线程共享,所以,任何一个变量都可以被任何一个线程修改,因此,线程之间共享数据最大的危险在于多个线程同时改一个变量,把内容给改乱了。 不同进程之间内存是不共享的,要实现两个进程间的 阅读全文
posted @ 2017-10-18 19:17 老榕树下的咖啡屋 阅读(6913) 评论(0) 推荐(0)
python 多进程
摘要:python多线程 不适合cpu密集操作型的任务 适合io操作密集型的任务。 multiprocessing 多进程 起多个进程 运行结果 在进程里面启动线程 运行结果 阅读全文
posted @ 2017-10-18 09:31 老榕树下的咖啡屋 阅读(330) 评论(0) 推荐(0)
python queue和生产者和消费者模型
摘要:queue队列 当必须安全地在多个线程之间交换信息时,队列在线程编程中特别有用。 没有数据会一直等。服务器端就会卡住。 有数据就取没有数据就抛出异常。 block=true 阻塞 取不到数据就会阻塞IO timeout =1 阻塞时间1S 等待一秒 没有新消息就抛出错误 maxsize= 3 队列只 阅读全文
posted @ 2017-10-18 00:50 老榕树下的咖啡屋 阅读(1249) 评论(0) 推荐(0)
python Events
摘要:Events事件 Events是一个简单的同步对象, 事件表示一个内部标志和线程 可以等待设置标志,或设置或清除标志本身。 Events使用 生成event对象 event = threading.Event() 设置标志位 event.set() 清空标志位 event.clear() 等待设置标 阅读全文
posted @ 2017-10-17 22:26 老榕树下的咖啡屋 阅读(122) 评论(0) 推荐(0)
python递归锁与信号量
摘要:递归锁 一把大锁在加一把小锁。 过程分享:1、启动10个线程,每个线程都执行run3。 2、run3中先加了一个锁,然后执行run1。 3、run1中也加了一个锁,计算完成后解锁返回数据。执行run2。 4、run2中同样加了一个锁,计算完成后解锁打印run1,run2返回值。 5、最后打印num1 阅读全文
posted @ 2017-10-17 09:45 老榕树下的咖啡屋 阅读(282) 评论(0) 推荐(0)
python 线程锁
摘要:在多线程中,同一个变量能被所有线程共享,这个变量能被任何一个线程修改。 看一个实验。 启动5个线程,每个线程把全局变量加1 启动了5个线程,每个线程加1,一共是5个,所以结果是5没有问题。 python2.7下执行: 50个线程,num相加50次,也没有问题。1000个线程相加也是没有问题的。 尝试 阅读全文
posted @ 2017-10-17 08:57 老榕树下的咖啡屋 阅读(349) 评论(0) 推荐(0)
python GIL锁
摘要:GIL锁 全局解释器锁 无论cpu是多少核的,python同一时间执行的线程只有一个,但是给我们的感觉是并发的?因为python在不断的进行上下文的切换。 python的线程是调用操作系统的原生线程。因为调用的是c的接口。当Python要调用这个线程去执行任务的时候,cpu要知道上下文,所以要把上下 阅读全文
posted @ 2017-10-16 12:02 老榕树下的咖啡屋 阅读(192) 评论(0) 推荐(0)
python 守护进程
摘要:主程序也是一个进程,只是我们看不到,需要借助函数打印。包括子进程也可以打印。 threading.current_thread() 查看当前线程 运行结果: threading.active_count() 活跃的线程个数 守护线程 守护线程也是子线程,主要是服务于主线程,当主线程退出以后,守护线程 阅读全文
posted @ 2017-10-16 10:56 老榕树下的咖啡屋 阅读(220) 评论(0) 推荐(0)
python 继承式多线程
摘要:Thread是线程类,有两种使用方法,直接传入要运行的方法或从Thread继承并覆盖run(): Thread继承 以上是通过类的方式创建线程。 关于Thread类 构造方法: Thread(group=None, target=None, name=None, args=(), kwargs={} 阅读全文
posted @ 2017-10-16 09:16 老榕树下的咖啡屋 阅读(3843) 评论(0) 推荐(0)
python 多线程效果演示
摘要:多线程演示 不使用多线程的情况 使用多线程的情况 阅读全文
posted @ 2017-10-16 08:44 老榕树下的咖啡屋 阅读(262) 评论(0) 推荐(0)
python进程与线程介绍
摘要:很多同学都听说过,现代操作系统比如Mac OS X,UNIX,Linux,Windows等,都是支持“多任务”的操作系统。 什么叫“多任务”呢?简单地说,就是操作系统可以同时运行多个任务。打个比方,你一边在用浏览器上网,一边在听MP3,一边在用Word赶作业,这就是多任务,至少同时有3个任务正在运行 阅读全文
posted @ 2017-10-16 08:33 老榕树下的咖啡屋 阅读(199) 评论(0) 推荐(0)