[源码分析]flask配置管理与描述符

2020-02-03
阅读 4 分钟
1.8k
应用首先从 yourapplication.default_settings 模块载入配置,然后根据 YOURAPPLICATION_SETTINGS 环境变量所指向的文件的内容重载配置的值。

[源码分析]flask蓝图实现原理分析

2020-02-02
阅读 3 分钟
2.9k
BluePrint(蓝图)的概念说白了就是路由组,所有注册到该蓝图上的路由都使用同一个前缀。这样方便了管理,不同的功能可以放在一个模块(比如admin模块)中实现,更加解耦。

[源码分析]flask中路由匹配是如何实现的

2020-01-31
阅读 4 分钟
3.8k
简单来说,WSGI是服务器和应用之间的接口,前端过来的请求传到服务器之后比如gunicorn,之后服务器会将请求转发给应用。因为有很多个服务器,如果我们为我们的应用根据不同的服务写不同的代码,会很麻烦,所以就出现了WSGI。

前缀树算法实现路由匹配原理解析

2020-01-29
阅读 4 分钟
10k
路由功能是web框架中一个很重要的功能,它将不同的请求转发给不同的函数(handler)处理,很容易能想到,我们可以用一个字典保存它们之间的对应关系,字典的key存放path,value存放handler。当一个请求过来后,使用 routers.get(path, None) 就可以找到对应的handler。

动手实现web框架

2020-01-25
阅读 5 分钟
3.8k
后端开发中,我们经常使用web框架来实现各种应用,比如python中的flask,django等,go语言中的gin等。web框架提供了很多现成的工具,大大加快了开发速度。这次,我们将动手实现自己的一个web框架。

一次爬虫的并发改造过程

2019-11-11
阅读 2 分钟
3.4k
事情是这样的:因为在写一个豆瓣抽奖的小程序,我需要抓取豆瓣广播所有转发的用户信息,然后从这些用户里面抽取幸运观众。 典型的IO密集型操作呀。 首先爬虫要进入广播找到一共有多少转发页,大概长这样: {代码...} 然后依次解析每一页的用户信息: {代码...} 很简单吧。 刚开始我用requests库直接依次请求每一页的内容...

vue登录以及权限验证相关

2019-10-24
阅读 3 分钟
7.4k
最近在做一个小应用,需要用到vue实现登录,以及给不同路由设置权限。在网上看了很多文章,讲的是乱七八糟。感叹国内技术类文章实在是差劲,抄来抄去。这篇文章就说说我最后是如何实现的。

python协程的前世今生

2018-01-19
阅读 2 分钟
3.8k
在上一篇对python并发编程的理解 中,我简单提到了协程的概念,有一个错误需要指出的是,asyncio不全是对协程的实现,只是用到了协程。

python奇遇记:深入理解装饰器

2018-01-11
阅读 3 分钟
2.3k
装饰器是什么,简单来说,装饰器可以改变一个函数的行为,比如原本有一个函数用来计算菲波那切数列,我们给这个函数加个计算执行时间的装饰器,这样原来的函数不仅能够计算菲波那切数列,而且还可以输出计算花费了多少时间。

对python并发编程的思考

2018-01-11
阅读 4 分钟
10.1k
为了提高系统密集型运算的效率,我们常常会使用到多个进程或者是多个线程,python中的Threading包实现了线程,multiprocessing 包则实现了多进程。而在3.2版本的python中,将进程与线程进一步封装成concurrent.futures 这个包,使用起来更加方便。我们以请求网络服务为例,来实际测试一下加入多线程之后的效果。

python|列表和元组有什么区别

2017-12-17
阅读 2 分钟
2.5k
如果有了解过python中的列表和元组,你可能会知道相对于列表,元组是不可变的,也就是说元组中的数据不能随意更改。除了列表是用中括号表示而元组是用小括号表示之外,这两种数据类型好像并没有什么不同,都是用来存放一系列的数据,事实真是如此吗?

python奇遇记:数据结构窥探3

2017-12-11
阅读 2 分钟
1.4k
字典和集合都是基于散列表实现的,散列表也就是hash表,了解过数据结构的应该知道。与散列表相关的一个概念叫做可散列,什么是可散列?在python官方定义中是这样说的:如果一个对象是可散列的,那么在这个对象的生命周期中,它的散列值是不变的,而且这个对象需要实现__hash__()方法。

python奇遇记:隐藏的python功能

2017-12-06
阅读 3 分钟
2k
在python的设计哲学中,有这么一条内容:“Simple is better than complex”,简单的代码比复杂的要好,这也是为什么python被推荐为初学者必学的语言。很多人初学python,往往会受到其他语言的影响,比如之前学过java的,把python代码写的像java一样。举个例子,在java中设计一个类时,我们常常会为内部变量定义get和set方...

python奇遇记:迭代器和生成器

2017-12-04
阅读 3 分钟
2.1k
之前简单的提到过,一个对象是可迭代的可以理解为能够使用for循环。这样说其实不太准确,某个对象可迭代是因为它内部实现了$__iter__$这个特殊方法。比如在python中,序列类型(列表,元组这些)都是可以迭代的,因为内部都有$__iter__$方法的实现。

Python奇遇记:数据结构窥探2

2017-12-03
阅读 3 分钟
1.3k
上次我们讲了几个不常见的数据类型,每个都有自己特殊的用途,虽然不经常用到,了解一下也好。比如我们提到的数组类型,如果在数据量很大的时候同时要效率,就可以使用它。这次来说说python中常见的数据类型像列表、元组、字典、集合中的一些很有用的技巧,帮助你提高开发效率。

Python奇遇记:数据结构窥探

2017-12-01
阅读 3 分钟
2.2k
用过python的都知道,python有着与其他语言很不一样的数据类型,像什么列表、元组、集合、字典之类。这些数据类型造就了python简单易用同时又很强大的特性。一般来说,我们会将python中的数据类型分为可变和不可变类型,可变的意思就是你可以修改像列表中的数据,不可变当然就是不能修改啦。还有一种分法是分为扁平类型...

Python奇遇记:特殊方法窥探

2017-11-30
阅读 3 分钟
2.4k
什么是特殊方法?当我们在设计一个类的时候,python中有一个用于初始化的方法$__init__$,类似于java中的构造器,这个就是特殊方法,也叫作魔术方法。简单来说,特殊方法可以给你设计的类加上一些神奇的特性,比如可以进行python原生的切片操作,迭代、连乘操作等。在python中,特殊方法以双下划线开始,以双下划线结束。

一行代码搞定人脸识别

2017-11-27
阅读 3 分钟
6.4k
face-recognition,使用最先进的人脸识别技术构建而成的python包,而且具有深度学习功能。经测试识别正确率高达99.38%。确实很高。

图像处理?没有Python可不行

2017-11-25
阅读 6 分钟
17k
python作为简单高效又很强大的一门编程语言,对于图像的处理自然也是轻松拿下,scikit-image是python中处理图像的一个库,对大多数的图像处理算法进行了封装,用户只需调用相关的接口即可。