PHP5.5之后新加了两个密码相关的函数:password_hash(加密)和password_verify(验证)。 string password_hash ( string $password , integer $algo [, array $options ] ),password_hash接收两个必需参数(明文密码和加密算法),一个可选的数组,返回一个字符串;password_verify接收两个必需参数(明文密码和加密后的密码),返回Bool,这个函数每次生成的加密后的hash值

阅读全文 »

以前对Python装饰器的执行顺序理解有点问题,如果使用了装饰器,那么装饰器将在任何函数执行前执行,比如下面的代码: def dec(func): print('i\'m decrorator') def wrapper(*args, **kw): return func(*args, **kw) return wrapper @dec def test(arg): print('i\'m %s' % arg)

阅读全文 »

写在前面:Python中一切皆对象 Python单例模式,官网给的一个例子: def singleton(cls): instance = cls() instance.__call__ = lambda: instance return instance # Sample use @singleton class Highlander: x = 100 # Of course you can have

阅读全文 »

使用ImagePipeline的时候出现了一些问题,总结一下常见的问题: ①'nonetype' object has no attribute '__getitem__' 出现这个错误的时候,检查一下下面方法是否在Pipelines.py中重写了 get_media_requests item_completed 然后检查settings.py中是否配置了一下两个常量 item_pipel

阅读全文 »

链家使用的是单点登录(CAS)。模拟登录的时候主要分析表单提交的Url、cookie、表单内容,说白了就是带着cookie post账号密码,使session合法化的一个过程,只不过链家的登录过程稍微复杂一点。 要想实现模拟登录,就要先观察正常登录的流程: 打开chrome的开发者工具,选择network,打开登录页: <a href="https://iwww.me/uploads/images/2016/01/lianjia2.pn

阅读全文 »