随笔分类 -  Python

摘要:windows下设置JupyterNotebook默认目录 [toc] 生成配置文件 假设你己经在windows环境变量中设置好了jupyter notebook,则打开cmd,在cmd中输入 运行,如下图: 生成jupyter notebook的配置文件,路径也会显示出来。 设置默认工作目录 到提 阅读全文
posted @ 2018-10-14 21:04 铁乐猫 阅读(10237) 评论(0) 推荐(1)
摘要:pip更新及Requirement already up to date解决方法 文:铁乐与猫 2018 9 11 更新命令 将pip更新到最新版本 Anaconda更新命令为 Requirement already up to date 在pycharm的虚拟环境中,特别容易出现运行更新pip的命 阅读全文
posted @ 2018-09-11 16:51 铁乐猫 阅读(2510) 评论(0) 推荐(0)
摘要:* Flask * 特点是小而轻,原生组件几乎为0 * Flask 的目标是保持核心简单而又可扩展。 * 快速,三行代码就能做到开启服务,六行代码显示web页面hello word * 缺点是组件大部分来源于第三方 * 如flask-admin、flask-session * 会造成大版本更新后,组件兼容的问题,组件更新速度因此慢。 * 属于短小精悍型框架。 * 结构方面,我个人认为像是搭积木。原生组件虽然少,但第三方的组件非常全面。 * Flask 可以变成你任何想要的东西,一切恰到好处,由你做主。 * 常用于小型应用和快速构建应用,但其强大的第三方库也足以支撑起大型web应用。 阅读全文
posted @ 2018-09-06 11:28 铁乐猫 阅读(753) 评论(0) 推荐(0)
摘要:* 在开始菜单中找到anaconda3的文件夹,一般我们会用到 * Anaconda Navigator * Jupyter Notebook * Spyder 阅读全文
posted @ 2018-09-01 16:23 铁乐猫 阅读(4255) 评论(0) 推荐(0)
摘要:因为环境或学习的需要,我们可能需要在服务器上安装多个python版本,安装一个更新的python版本后,使用软链来进行共存。 这个时候需要进行源码编译安装。 当然后续开发项目可以直接跑在虚拟环境下隔离开来,就不再需要在服务器上安装多个不同版本的包了 阅读全文
posted @ 2018-08-15 11:55 铁乐猫 阅读(17932) 评论(0) 推荐(1)
摘要:由于opensuse包管理安装的是python2.7,而最近我又用编译安装了python3。 之后使用virtualenv虚拟环境指定创建python3版本的隔离环境时就出现了错误,报缺少zlib模块。 阅读全文
posted @ 2018-08-15 10:06 铁乐猫 阅读(1188) 评论(0) 推荐(0)
摘要:Django的MTV模式本质上和MVC是一样的,也是为了各组件间保持松耦合关系,只是定义上有些许不同,Django的MTV分别是指: M 代表模型(Model): 负责业务对象和数据库的关系映射(ORM)。 T 代表模板 (Template):负责如何把页面展示给用户(html)。 V 代表视图(View): 负责业务逻辑,并在适当时候调用Model和Template。 除了以上三层之外,还需要一个URL分发器,它的作用是将一个个URL的页面请求分发给不同的View处理,View再调用相应的Model和Template,MTV的响应模式如下所示: 阅读全文
posted @ 2018-06-27 11:01 铁乐猫 阅读(374) 评论(0) 推荐(0)
摘要:http协议简介 HTTP协议是Hyper Text Transfer Protocol(超文本传输协议)的缩写, 是用于万维网**服务器与本地浏览器**之间传输超文本的传送协议。 HTTP是一个属于应用层的面向对象的协议,HTTP协议工作于客户端-服务端架构。 浏览器作为HTTP客户端通过URL向HTTP服务端即WEB服务器发送所有请求。 Web服务器根据接收到的请求后,向客户端发送响应信息。 阅读全文
posted @ 2018-06-25 08:35 铁乐猫 阅读(398) 评论(0) 推荐(0)
摘要:Web应用程序顾名思义,就是一种可以通过Web访问的应用程序, Web应用的最大特点是用户只需要有网络和浏览器,不需要再安装其他软件就可顺利通过web访问到程序。 WEB应用程序一般是B/S模式(浏览器端/服务器端)。 Web应用程序首先是“应用程序”,和用标准的程序语言,如java,python等编写出来的程序没有什么本质上的不同。 而在网络编程的意义下,浏览器是一个socket客户端,服务器是一个socket服务端。 阅读全文
posted @ 2018-06-21 20:00 铁乐猫 阅读(165) 评论(0) 推荐(0)
摘要:问题1: 请问如何修改以下python代码,使得下面的代码调用类A的show方法? 答:这道题的考点是类继承,只要通过__class__方法指定类对象就可以了。修改如下,其实就是只补充了一行 代码: 问题2 :请问如何修改以下python代码,使得代码能够运行? 答:此题考察的是方法对象,为了能让对 阅读全文
posted @ 2018-06-21 17:55 铁乐猫 阅读(182) 评论(0) 推荐(0)
摘要:IO模型介绍 * blocking IO 阻塞IO * nonblocking IO 非阻塞IO * IO multiplexing IO多路复用 * signal driven IO 信号驱动IO * asynchronous IO 异步IO 阅读全文
posted @ 2018-05-27 18:21 铁乐猫 阅读(329) 评论(0) 推荐(0)
摘要:协程:是单线程下的并发,又称微线程,纤程。 英文名Coroutine。 一句话说明什么是线程:协程是一种用户态的轻量级线程,即协程是由用户程序自己控制调度的。 阅读全文
posted @ 2018-05-24 20:15 铁乐猫 阅读(187) 评论(0) 推荐(0)
摘要:concurrent.futures模块提供了高度封装的异步调用接口 ThreadPoolExecutor:线程池,提供异步调用 ProcessPoolExecutor: 进程池,提供异步调用 阅读全文
posted @ 2018-05-23 19:57 铁乐猫 阅读(226) 评论(0) 推荐(0)
摘要:信号量 semaphore 允许统一时刻n个线程执行这段代码 事件 event 有一个内部的事件来控制wait的行为且控制的是所有的线程 条件 condition 有一个内部的条件来控制wait的行为,可以逐个或者分批次的控制线程的走向 阅读全文
posted @ 2018-05-23 18:12 铁乐猫 阅读(204) 评论(0) 推荐(0)
摘要:加锁会让运行变成串行,而在start之后立即使用join,不用加锁了也是串行的效果。那么为什么使用加锁呢? 在start之后立刻使用jion,也会将100个任务的执行变成串行,最终n的结果是0,也是安全的, 但问题是start后立即join:任务内的所有代码都是串行执行的, 而加锁,只是加锁的部分即修改共享数据的部分是串行的, 单从保证数据安全方面,二者都可以实现,但很明显是加锁的效率更高. 阅读全文
posted @ 2018-05-23 17:57 铁乐猫 阅读(221) 评论(0) 推荐(0)
摘要:线程的出现   60年代,在OS中能拥有资源和独立运行的基本单位是进程,然而随着计算机技术的发展,进程出现了很多弊端,一是由于进程是资源拥有者,创建、撤消与切换存在较大的时空开销,因此需要引入轻型进程;二是由于对称多处理机(SMP)出现,可以满足多个运行单位,而多个进程并行开销过大。   因此在80年代,出现了能独立运行的基本单位——线程(Threads)。   注意:进程是资源分配的最小单位,线程是CPU调度的最小单位.   每一个进程中至少有一个线程。 阅读全文
posted @ 2018-05-18 21:24 铁乐猫 阅读(227) 评论(0) 推荐(0)
摘要:锁 —— multiprocess.Lock (进程同步) 之前我们千方百计实现了程序的异步,让多个任务可以同时在几个进程中并发处理, 但是它们之间的运行没有顺序,一旦开启也不受我们控制。 尽管并发编程能让我们更加充分的利用IO资源,但是也会带来新的问题。 当多个进程使用同一份数据资源的时候,就会引发数据安全或顺序混乱问题。 遇到数据、安全比速度重要的场景,我们就需要将进程变回受同步控制。 阅读全文
posted @ 2018-05-15 21:03 铁乐猫 阅读(179) 评论(0) 推荐(0)
摘要:进程之间的数据共享 基于消息传递的并发编程是大势所趋, 即便是使用线程,推荐做法也是将程序设计为大量独立的线程集合,通过消息队列交换数据。 这样极大地减少了对使用锁和其他同步手段的需求,还可以扩展到分布式系统中。 但进程间应该尽量避免通信,即便需要通信,也应该选择进程安全的工具来避免加锁带来的问题。 以后我们会尝试使用数据库来解决现在进程之间的数据共享问题。 阅读全文
posted @ 2018-05-15 21:01 铁乐猫 阅读(237) 评论(0) 推荐(0)
摘要:【进程】 运行中的程序就是一个进程。 所有的进程都是通过它的父进程来创建的。 因此,运行起来的python程序也是一个进程,那么我们也可以在程序中再创建进程。 多个进程可以实现并发效果,程序中存在多个进程的时候,在某些时候,就会让程序的执行速度变快。 以之前所学的知识,并不能实现创建进程这个功能,所以就需要借助到python中强大的模块--multiprocess。 阅读全文
posted @ 2018-05-14 20:14 铁乐猫 阅读(251) 评论(0) 推荐(0)
摘要:验证客户端链接的合法性 如果你想在分布式系统中实现一个简单的客户端链接认证功能,又不像SSL那么复杂, 那么可以利用hmac+加盐的方式来实现。 SocketServer是标准库中的一个高级模块(python3.x中重命名为socketserver), 它的目标是简化很多样板代码,它们是创建网络客户端和服务器所必需的代码。 阅读全文
posted @ 2018-05-11 09:14 铁乐猫 阅读(258) 评论(0) 推荐(0)