关于我一个有思想的程序猿,终身学习实践者,目前在一个创业团队任teamlead,技术栈涉及Android、Python、Java和Go,这个也是我们团队的主要技术栈。Github:https://github.com/hylinux1024微信公众号:终身开发者(angrycode)Flask中全局变量有current_app、request、g和session。不过需要注意的是虽然标题是写着全局变量,但实际上这些变量都跟当前请求的上下文环境有关,下面一起
系统 2019-09-27 17:52:39 1578
第1题:如何解决验证码的问题,用什么模块,听过哪些人工打码平台?PIL、pytesser、tesseract模块平台的话有:(打码平台特殊,不保证时效性)云打码挣码斐斐打码若快打码超级鹰第2题:ip被封了怎么解决,自己做过ip池么?关于ip可以通过ip代理池来解决问题ip代理池相关的可以在github上搜索ipproxy自己选一个去说https://github.com/awolfly9/IPProxyTool提供大体思路:获取器通过requests的爬虫
系统 2019-09-27 17:52:35 1578
Flask或者其他框架都是封装的比较完善,我们可以不去关注路由、SESSION等到底是怎么实现的,现在我们使用socket来实现一个带有注册、登录功能的Todo网站,这样能对后端框架了解的稍微更深入一点(当然你也可以直接去看Flask源码)。主程序runserver.py代码如下:#!/usr/bin/envpython#-*-coding:utf-8-*-importsocketfromextsimportRequestfromrouteimportre
系统 2019-09-27 17:52:26 1578
简单使用最开始,我们用最短的代码体验一下logging的基本功能。importlogginglogger=logging.getLogger()logging.basicConfig()logger.setLevel('DEBUG')logger.debug('logsomething')#输出out>>DEBG:root:logsomething第一步,通过logging.getLogger函数,获取一个loger对象,但这个对象暂时是无法使用的。第二步
系统 2019-09-27 17:52:26 1578
#-*-coding:utf-8-*-importdatetime#给定日期向后N天的日期defdateadd_day(days):d1=datetime.datetime.now()d3=d1+datetime.timedelta(days)returnd3#昨天defgetYesterday():today=datetime.date.today()oneday=datetime.timedelta(days=1)yesterday=today-one
系统 2019-09-27 17:52:22 1578
3.4.5断言断言(assertions)的使用方式类似于if语句,只是在不满足条件时,会直接抛出异常。类似于下面的if语句(伪代码)ifnotcondition:#如果不满足条件,会直接抛出异常,程序会中断crashprogram那么究竟为什么需要这样的代码呢?主要原因为需要检测程序在某个地方是否满足条件,如果不满足条件,应该及时通知开发人员,而不是将这些bug隐藏起来,知道关键的时候在崩溃。其实在TDD中经常使用断言,TDD会在程序发现异常时执行断言,
系统 2019-09-27 17:52:20 1578
MongoDB是目前最流行的NoSQL数据库之一,使用的数据类型BSON(类似JSON)。1.安装Mongodb和pymongoMongodb的安装和配置Mongodb的安装教程请网上搜索,安装完成后,进行以下配置过程:1.1创建目录,该目录为Mongodb数据文件的存放目录:*注:本人使用的不是root用户,所以修改目录的拥有者.*sudomkdir/datasudochown-Rpython:python/datamkdir/data/db1.2分别执
系统 2019-09-27 17:52:16 1578
实现一个支持动态扩容的数组并完成其增删改查#通过python实现动态数组"""数组特点:占用一段连续的内存空间,支持随机(索引)访问,且时间复杂度为O(1)添加元素时间复杂度:O(n)删除元素时间复杂度:O(n)"""classArr:def__init__(self,capacity=10):"""构造函数:paramcapacity:数组最大容量,不指定的话默认为10"""self._capacity=capacityself._size=0#数组有效
系统 2019-09-27 17:52:16 1578
Python的字符串的特点Python与C语言,Java语言都不一样,没有单个字符,只有一个有一个字符的字符串。字符串对象不可修改,属于不可变类型字符串和列表,元组都从属于序列这个对象类别。所以序列支持的操作,字符串也支持。用单引号和双引号表示都行,并列的字符串串常量会自动合并,不需要显式的用加号表示。单双引号里面的特殊字符必须用转义序列表示,比如”,',\都需要在前面加个、,但是在三引号里面不需要转义。Python的字符串的支持的基本操作支持序列的操作,
系统 2019-09-27 17:52:13 1578
字典是键/值对构成的集合,字典通过大括号来创建,字典的键是字符串,而值可以是任何数据对象。字典有两个重要的特征:字典是无序的,字典项没有特定的顺序,只能通过键来获取值;字典是可变的,支持原处修改键的值;字典是作为散列表来实现的,可增长,搜索非常快速;和列表一样,字典存储的是对象的引用,不是拷贝。创建字典创建空的字典:>>>d={}创建包含两个项目的字典:>>>d={'name':'vic','age':28}创建包含嵌套类型的字典:>>>d={'stude
系统 2019-09-27 17:52:13 1578