pyenv 安装及常用命令
pyenv centos系统的安装以及常用的命令项目地址https://github.com/pyenv/pyenvgit安装安装python编译依赖环境centosdebian克隆pyenv的仓库也可以使用脚本安装curl -L https://github.com/pyenv/pyenv-installer/raw/master/bin/pyenv-installer | bash写入bash文件如果有~/.profile文件的话,尽量不要写到~/.bashrc文件中去,会导致ssh连接的时候死循环(
CentOS7及以上修改SSH端口
老是忘记修改的具体步骤,写个博客记录一下。以默认的22端口更换为22345端口为例。防火墙放行ssh端口firewall-cmd --zone=public --add-port=22345/tcp --permanent如果提示FirewallD is not running防火墙未在运行。需要先启动防火墙并将其加入开机自启:systemctl start firewalld.servicesystemctl enable firewalld.service之后重载防火墙firewall-cmd --r
十五的月亮十六圆
十五的月亮十六圆思念的人儿在心间
Django中的一些常用方法记录
receiver (Django signal)的使用模型相关:pre_save 对象 save 前触发post_save 对象 save 后触发pre_delete 对象 delete 前触发post_detele 对象 delete 后触发m2m_changed ManyToManyField 字段更新后触发请求相关:request_started 一个 request 请求前触发request_finished 一个 request 请求后触发bulk_update 的使用用于批量更新数据bulk_
简单理解python异步编程与asyncio实现(四)
asyncioasyncio 简介asyncio是Python 3.4 试验性引入的异步I/O框架(PEP 3156),提供了基于协程做异步I/O编写单线程并发代码的基础设施。其核心组件有事件循环(Event Loop)、协程(Coroutine)、任务(Task)、未来对象(Future)以及其他一些扩充和辅助性质的模块。在引入asyncio的时候,还提供了一个装饰器@asyncio.coroutine用于装饰使用了yield from的函数,以标记其为协程。但并不强制使用这个装饰器。虽然发展到 Pyt
Python 测试覆盖率 coverage
Python下测试覆盖率用的比较多的是 coverage。coverage官方文档:https://coverage.readthedocs.io/安装方法1:pip安装方法2:下载安装包安装https://pypi.org/project/coverage/使用pytestunittestnosetest参数使用--source=.来指定当前路径命令coverage report -m 打印当前测试覆盖率结果。coverage html 在执行目录下生成一个 htmlcov 文件夹,可以打开该文件夹的
Python 元类
Python 元类今天在看 Django models 的源码时,看到了这么一个东西:当时看到这里的时候我挺疑惑的。为什么 ModelBase 去继承 type??为什么class可以继承type??type这玩意儿不是个函数吗?于是乎我上网查了查,这东西叫做元类。那么什么是元类呢,我开始了我的探索之旅。什么是元类在 Python 中,实例对象是由类来创建的,那么类又是什么东西来创建的?其实类是通过元类来创建的。在平时的编程中,元类基本上不会被用到。类?对象在大部分编程语言中,类的作用是来描述如何产生一个
简单理解python异步编程与asyncio实现(三)
协程与asyncio协程协程(Co-routine),即是协作式的例程它是非抢占式的多任务子例程的概括,可以允许有多个入口点在例程中确定的位置来控制程序的暂停与恢复执行。例程是什么?编程语言定义的可被调用的代码段,为了完成某个特定功能而封装在一起的一系列指令。一般的编程语言都用称为函数或方法的代码结构来体现。首先,要知道的是,无论是多进程,多线程还是协程,都是为了解决多任务同时进行的问题。而多任务系统实现的关键在于如何暂停当前任务,保存当前任务的上下文,选择下一个任务,恢复下一个任务的上下文 ,执行下一个
简单理解python异步编程与asyncio实现(二)
同步->异步I/O以一个爬虫为例,下载10篇网页,用几个例子来展示从同步->异步。同步阻塞方式以同步阻塞方式来写这个程序也是最容易想到的方式,即依次下载好10篇网页。这段代码的执行事件大概为4.5秒。(取多次平均值)上述代码中, blocking_way()这个函数的作用主要是建立连接,发送HTTP请求,然后从socket读取HTTP响应请求到并返回数据。sync_way()将blocking_way()执行了10次,也就是说,我们执行了10次访问下载 example.com由于网络情况和服务端的处理各不
简单理解python异步编程与asyncio实现(一)
异步编程在开始说明异步编程之前,首先先了解几个相关的概念。阻塞程序未得到所需计算资源时被挂起的状态。程序在等待某个操作完成期间,自身无法继续干别的事情,则称该程序在该操作上是阻塞的。常见的阻塞形式有:网络I/O阻塞、磁盘I/O阻塞、用户输入阻塞等。阻塞是无处不在的,包括CPU切换上下文时,所有的进程都无法真正干事情,它们也会被阻塞。(如果是多核CPU则正在执行上下文切换操作的核不可被利用。)简单的理解的话,阻塞就是 A调用B,A会被挂起,一直等待B的结果,什么都不能干 。非阻塞程序在等待某操作过程中,自