目录一、什么是协程二、为什么要有协程三、协程的优缺点四、如何实现协程五、Gevent模块5.1模块的安装5.2用法介绍5.3代码实例六、gevent之应用一、什么是协程协程:就是单线程下实现并发协程概念本质是程序员抽象出来的,是人为的控制通过程序的IO去进行切换任务的执行并发:任务切换+保存状态二、为什么要有协程自己控制切换要比操作系统切换快的多.降低了单个线程的io堵塞时间,也就是实现了单线程下效率最高.三、协程的优缺点优点:自己控制切换要比操作系统切换
系统 2019-09-27 17:49:35 1893
10.13视图1、什么是视图视图就是通过查询得到一张虚拟表,然后保存下来,下次用的直接使用即可2、为什么要用视图如果要频繁使用一张虚拟表,可以不用重复查询3、如何使用视图视图记录的增、删、改和表方法相同,但改变视图记录,原始表也跟着改,所以不要修改视图记录,只用于查看createviewteacher2courseas#创建视图select*fromteacherinnerjoincourseonteacher.tid=course.teacher_id;
系统 2019-09-27 17:49:05 1893
前言Quora问答社区的一个开发者投票统计,程序员最大的难题是:如何命名(例如:给变量,类,函数等等),光是如何命名一项的选票几乎是其它八项的投票结果的总和。如何给变量命名,如何让它变得有意义成了程序员不可逾越的难题,这篇文章参考了CleanCode,提供7条命名建议,希望能在取名字的过程中给你带来一些帮助。以下都是基于Python3.7语法1、使用有意义而且可读的变量名差ymdstr=datetime.date.today().strftime("%y-
系统 2019-09-27 17:49:04 1893
通常来说,Python的变量/数据类型非常多,但是它是不需要用户指定的,因为有些是根据部份系统函数生成,另外一些是自动根据变量的值识别的,这些数据类型常量在classtypes定义,所以使用时需要importtypes如:复制代码代码如下:importtypesa=[1,2,3]iftype(a)istypes.ListType:printaelse:print'notlist'Python的具体变量/数据类型如下:NoneTypeNone类型TypeTy
系统 2019-09-27 17:48:24 1893
Step1:安装python和sublimeStep2:给sublime安装packagecontrol,安装参见:官网Step3:配置安装路径方式一:配置windows的Path好处就是cmd的时候也可以运行,视为系统,用户级别的配置;方式二:配置sublime的python的sublime_build点击:Preference->BrowsePackages->在python目录下,编辑Python.sublime-build文件,添加python应用
系统 2019-09-27 17:48:17 1893
#安装依赖yum-ygroupinstalldevelopmentyum-yinstallzlib-devel#安装编译工具(也可以用yum或apt-get)aptitude-yinstallgccmakezliblg-dev下载安装包点我https://www.python.org/ftp/python/查找自己想要的版本#下载python安装包wgethttps://www.python.org/ftp/python/3.6.0/Python-3.6.
系统 2019-09-27 17:48:00 1893
这货很强大,必须掌握文档链接http://docs.python.org/2/library/itertools.htmlpymotw链接http://pymotw.com/2/itertools/基本是基于文档的翻译和补充,相当于翻译了itertools用于高效循环的迭代函数集合组成总体,整体了解无限迭代器复制代码代码如下:迭代器参数结果例子count()start,[step]start,start+step,start+2*step,...count
系统 2019-09-27 17:47:57 1893
我们在写代码的过程中,会经常使用到for循环,去循环列表,那么如果我们拿到一个类型为str的列表,对它进行for循环,结果看下面的代码和图:str_list=str(['a','b','c'])forrowinstr_list:print(row)结果:Python字符串类型列表转换成真正列表类型那么for循环就把str类型的列表的每一个字符都一个一个的循环的打印出来,而这个结果并不是我们想要的,那么如何解决这个问题?,使用到第三方模块,看下面的代码fro
系统 2019-09-27 17:47:49 1893
rindex()方法返回所在的子str被找到的最后一个索引,可选择限制搜索的字符串string[beg:end]如果没有这样的索引存在,抛出一个异常。语法以下是rindex()方法的语法:str.rindex(str,beg=0end=len(string))参数str--此选项指定要搜索的字符串。beg--这是开始索引,默认情况下为0len--这是最后的索引,默认情况下它等于字符串的长度。返回值此方法如果找到返回最后一个索引,否则如果没有找到str引发一
系统 2019-09-27 17:47:10 1893
登录流程:实例化一个driver,然后driver.get()发送请求最重要的:切换iframe子框架,因为豆瓣的网页中的登录那部分是一个ifrme,必须切换才能寻找到对应元素利用selenium切换到账号密码登录利用selenium输入账户和密码利用selenium点击登录按钮然后利用字典推导式保存了一下cookie代码实现:importtimefromseleniumimportwebdriver#实例化driverdriver=webdriver.C
系统 2019-09-27 17:47:06 1893