python
qq_26847293
这个作者很懒,什么都没留下…
展开
-
Writing your first Django app, part 1
Let’s learn by example. Throughout this tutorial, we’ll walk you through the creation of a basic poll application.It’ll consist of two parts:A public site that lets people view polls and vote in them转载 2015-12-13 16:34:07 · 428 阅读 · 0 评论 -
python 协程
协程,又称微线程,纤程。英文名Coroutine。 协程的概念很早就提出来了,但直到最近几年才在某些语言(如Lua)中得到广泛应用。 子程序,或者称为函数,在所有语言中都是层级调用,比如A调用B,B在执行过程中又调用了C,C执行完毕返回,B执行完毕返回,最后是A执行完毕。 所以子程序调用是通过栈实现的,一个线程就是执行一个子程序。子程序调用总是一个入口,一次返回,调用顺序是明确的。而协程的调用转载 2016-03-15 16:21:10 · 479 阅读 · 0 评论 -
python Web开发
最早的软件都是运行在大型机上的,软件使用者通过“哑终端”登陆到大型机上去运行软件。后来随着PC机的兴起,软件开始主要运行在桌面上,而数据库这样的软件运行在服务器端,这种Client/Server模式简称CS架构。随着互联网的兴起,人们发现,CS架构不适合Web,最大的原因是Web应用程序的修改和升级非常迅速,而CS架构需要每个客户端逐个升级桌面App,因此,Browser/Server模式开始流行,转载 2016-03-12 10:25:37 · 1599 阅读 · 0 评论 -
python aiohttp
asyncio可以实现单线程并发IO操作。如果仅用在客户端,发挥的威力不大。如果把asyncio用在服务器端,例如Web服务器,由于HTTP连接就是IO操作,因此可以用单线程+coroutine实现多用户的高并发支持。asyncio实现了TCP、UDP、SSL等协议,aiohttp则是基于asyncio实现的HTTP框架。我们先安装aiohttp:pip install aiohttp然后编写一个H转载 2016-03-12 09:54:37 · 799 阅读 · 0 评论 -
python async/await
用asyncio提供的@asyncio.coroutine可以把一个generator标记为coroutine类型,然后在coroutine内部用yield from调用另一个coroutine实现异步操作。为了简化并更好地标识异步IO,从Python 3.5开始引入了新的语法async和await,可以让coroutine的代码更简洁易读。请注意,async和await是针对coroutine的新转载 2016-03-12 09:51:09 · 1595 阅读 · 0 评论 -
python asyncio
asyncio是Python 3.4版本引入的标准库,直接内置了对异步IO的支持。 asyncio的编程模型就是一个消息循环。我们从asyncio模块中直接获取一个EventLoop的引用,然后把需要执行的协程扔到EventLoop中执行,就实现了异步IO。用asyncio实现Hello world代码如下:import asyncio@asyncio.coroutinedef hello():转载 2016-03-12 09:49:24 · 748 阅读 · 0 评论 -
Python生成器generator之next和send运行流程
对于普通的生成器,第一个next调用,相当于启动生成器,会从生成器函数的第一行代码开始执行,直到第一次执行完yield语句(第4行)后,跳出生成器函数。 然后第二个next调用,进入生成器函数后,从yield语句的下一句语句(第5行)开始执行,然后重新运行到yield语句,执行后,跳出生成器函数, 后面再次调用next,依次类推。下面是一个列子:def consumer(): r = '转载 2016-03-12 09:28:53 · 494 阅读 · 0 评论 -
python 协程
在学习异步IO模型前,我们先来了解协程。 协程,又称微线程,纤程。英文名Coroutine。 协程的概念很早就提出来了,但直到最近几年才在某些语言(如Lua)中得到广泛应用。 子程序,或者称为函数,在所有语言中都是层级调用,比如A调用B,B在执行过程中又调用了C,C执行完毕返回,B执行完毕返回,最后是A执行完毕。 所以子程序调用是通过栈实现的,一个线程就是执行一个子程序。 子程序调用总是一转载 2016-03-12 09:20:45 · 246 阅读 · 0 评论 -
python 异步IO
在IO编程一节中,我们已经知道,CPU的速度远远快于磁盘、网络等IO。在一个线程中,CPU执行代码的速度极快,然而,一旦遇到IO操作,如读写文件、发送网络数据时,就需要等待IO操作完成,才能继续进行下一步操作。这种情况称为同步IO。 在IO操作的过程中,当前线程被挂起,而其他需要CPU执行的代码就无法被当前线程执行了。 因为一个IO操作就阻塞了当前线程,导致其他代码无法执行,所以我们必须使用多线转载 2016-03-12 09:11:54 · 443 阅读 · 0 评论 -
基于PyQt(Python+QT)的gui程序开发
首先需要引用from PyQt4 import QtGui, uic, QtCore 很多控件像QPushButton是从QtGui的空间中得来的,下面def __init__(self, parent=None)中定义了界面的设计及与控件相互联系的方法。class AddressBook(QtGui.QWidget): def __init__(self, parent=None)转载 2016-03-23 12:42:55 · 937 阅读 · 0 评论 -
python 类和实例
面向对象最重要的概念就是类(Class)和实例(Instance),必须牢记类是抽象的模板,比如Student类,而实例是根据类创建出来的一个个具体的“对象”,每个对象都拥有相同的方法,但各自的数据可能不同。仍以Student类为例,在Python中,定义类是通过class关键字:class Student(object): passclass后面紧接着是类名,即Student,类名通常是大转载 2016-03-11 16:04:53 · 195 阅读 · 0 评论 -
python 面向对象编程
面向对象编程——Object Oriented Programming,简称OOP,是一种程序设计思想。OOP把对象作为程序的基本单元,一个对象包含了数据和操作数据的函数。面向过程的程序设计把计算机程序视为一系列的命令集合,即一组函数的顺序执行。为了简化程序设计,面向过程把函数继续切分为子函数,即把大块函数通过切割成小块函数来降低系统的复杂度。而面向对象的程序设计把计算机程序视为一组对象的集合,而每原创 2016-03-11 15:59:41 · 269 阅读 · 0 评论 -
python函数 callable(object)
callable(object) 检查对象object是否可调用。如果返回True,object仍然可能调用失败;但如果返回False,调用对象ojbect绝对不会成功。 注意:类是可调用的,而类的实例实现了__call__()方法才可调用。 版本:该函数在python2.x版本中都可用。但是在python3.0版本中被移除,而在python3.2以后版本中被重新添加。Return True转载 2016-03-16 09:12:34 · 500 阅读 · 0 评论 -
python 面向对象高级编程
数据封装、继承和多态只是面向对象程序设计中最基础的3个概念。在Python中,面向对象还有很多高级特性,允许我们写出非常强大的功能。使用__slots__正常情况下,当我们定义了一个class,创建了一个class的实例后,我们可以给该实例绑定任何属性和方法,这就是动态语言的灵活性。先定义class:>>> class Student(object):... pass...然后,尝试给实转载 2016-03-02 13:05:28 · 371 阅读 · 0 评论 -
python错误、调试和测试
Python内置了一套异常处理机制,来帮助我们进行错误处理。 在程序运行的过程中,如果发生了错误,可以事先约定返回一个错误代码,这样,就可以知道是否有错,以及出错的原因。在操作系统提供的调用中,返回错误码非常常见。比如打开文件的函数open(),成功时返回文件描述符(就是一个整数),出错时返回-1。 用错误码来表示是否出错十分不便,因为函数本身应该返回的正常结果和错误码混在一起,造成调用者必须用转载 2016-03-02 12:58:01 · 352 阅读 · 0 评论 -
Django 基础教程
Django 是基于 Python,所有的 Django 代码都是用Python写成的。Django 特点强大的数据库功能用python的类继承,几行代码就可以拥有一个丰富,动态的数据库操作接口(API),如果需要你也能执行SQL语句自带的强大的后台功能几行简单的代码就让你的网站拥有一个强大的后台,轻松管理你的内容!优雅的网址用正则匹配网址,传递到对应函数,随意定义,如你所想!模板系统强大,易扩展的转载 2015-12-09 19:53:11 · 360 阅读 · 0 评论 -
Windows下pip安装包报错:Microsoft Visual C++ 9.0 is required Unable to find vcvarsall.bat
在Windows7x64下使用pip安装包的时候提示报错:Microsoft Visual C++ 9.0 is required (Unable to find vcvarsall.bat)环境:windows7 x64 ,python2.7 ,VS2012 原因:windows下使用pip安装包的时候需要机器装有vs2008,VS2012还不行,如果不想装VS2008的话,可以安装一个Mic转载 2015-12-13 17:08:08 · 594 阅读 · 0 评论 -
python gevent
Python通过yield提供了对协程的基本支持,但是不完全。而第三方的gevent为Python提供了比较完善的协程支持。 gevent是第三方库,通过greenlet实现协程,其基本思想是: 当一个greenlet遇到IO操作时,比如访问网络,就自动切换到其他的greenlet,等到IO操作完成,再在适当的时候切换回来继续执行。由于IO操作非常耗时,经常使程序处于等待状态,有了gevent为转载 2016-03-15 16:24:02 · 446 阅读 · 0 评论