包含标签 编程 的文章

谈一谈Python的上下文管理器

经常在Python代码中看到with语句,仔细分析下,会发现这个with语句功能好强,可以自动关闭资源。这个在Python中叫上下文管理器Context Manager。那我们要怎么用它,什么时候用它呢。这里我们就来聊一聊。 上下文管理器的作用 很多情况,当我们……

阅读全文

基于协程的Python网络库gevent介绍

继续Python协程方面的介绍,这次要讲的是gevent,它是一个并发网络库。它的协程是基于greenlet的,并基于libev实现快速事件循环(Linux上是epoll,FreeBSD上是kqueue,Mac OS X上是select)。有了gevent,协程……

阅读全文

用greenlet实现Python中的并发

在上一篇介绍生成器时,我们讲到了协程(Coroutine),它也被称为微线程。回顾一下,协程可以在一个函数执行过程中将其挂起,去执行另一个函数,并在必要时将之前的函数唤醒。在Python的语言环境里,协程是相当常用的实现”并发”的方……

阅读全文

谈谈Python的生成器

第一次看到Python代码中出现yield关键字时,一脸懵逼,完全理解不了这个。网上查下解释,函数中出现了yield关键字,则调用该函数时会返回一个生成器。那到底什么是生成器呢?我们经常看到类似下面的代码 def count(n): x = 0 while x < n: yield x x += 1 for i in count(5): print i 这段代码执行……

阅读全文

关于Python的Mixin模式

像C或C++这类语言都支持多重继承,一个子类可以有多个父类,这样的设计常被人诟病。因为继承应该是个”is-a”关系。比如轿车类继承交通工具类,因为轿车是一个(“is-a”)交通工具。一个物品不可能是多种不同的……

阅读全文

探讨下Javascript中的Promise模式

Javascript最令人称道的就是它的事件回调模式,因此即使只有一个执行线程,它也能支持异步高并发。不过回调写多了,代码就会非常复杂难懂,因为回调不像同步代码,执行顺序是从上至下,读回调代码必须跳来跳去,思考什么情况下到底跳到了什么地方,很辛苦,这种情况……

阅读全文

CSS样式选择优先级

记录一下之前看到过的CSS样式优先级计算方法。 CSS的样式优先级由一个4位数字权重表示,对于同一个文档元素,如果存在多个样式,就比较每个样式4位数的优先级权重,然后选择值较大的那个。那么这4位数权重是怎么计算的呢? 一般我们添加样式有以下几种方法: 内联样式 通……

阅读全文

Flask扩展系列–自定义扩展

介绍了那么多Flask扩展,该讲下如何写自己的扩展了。你可以写个扩展给自己的项目用,也可以发起审核申请,审核通过的扩展会显示在官方扩展列表中。本篇中,让我们创建一个为视图访问加日志的扩展Flask-Logging,并从中了解到写Flask扩展的规范。 系列文……

阅读全文

Flask扩展系列(九)–HTTP认证

上一篇中,我们介绍了用户会话管理和登录验证,那么对于HTTP请求上的认证,比如Restful API请求的认证要怎么做呢?因为Restful API不保存状态,无法依赖Cookie及Session来保存用户信息,自然也无法使用Flask-Login扩展来实现用……

阅读全文

Flask扩展系列(八)–用户会话管理

在入门系列第四篇中,我们曾介绍过如果使用会话Session保存用户登录状态,同时在进阶系列的第四篇中,我们演示了如何写一个视图装饰器来验证当前请求的用户是否已登陆。其实这些用户登录及会话管理功能基本上是每个应用都必须有的,因此自然会存在一个Flask的扩展……

阅读全文

最近文章

分类

标签

友情链接

其它