资讯专栏INFORMATION COLUMN

[零基础学python]python开发框架

lucas / 1817人阅读

摘要:软件开发者通常依据特定的框架实现更为复杂的商业运用和业务逻辑。所有,做开发,要用一个框架。的性能是相当优异的,因为它师徒解决一个被称之为问题,就是处理大于或等于一万的并发。

  

"One does not live by bread alone,but by every word that comes from the mouth of God"
--(MATTHEW4:4)

不管是python,还是php,亦或别的做web项目的语言,乃至于做其它非web项目的开发,一般都要用到一个称之为什么什么框架的东西。

框架的基本概念

开发这对框架的认识,由于工作习惯和工作内容的不同,有很大差异,这里姑且截取维基百科中的一种定义,之所以要给出一个定义,无非是让看官有所了解,但是是否知道这个定义,丝毫不影响后面的工作。

  

软件框架(Software framework),通常指的是为了实现某个业界标准或完成特定基本任务的软件组件规范,也指为了实现某个软件组件规范时,提供规范所要求之基础功能的软件产品。

  

框架的功能类似于基础设施,与具体的软件应用无关,但是提供并实现最为基础的软件架构和体系。软件开发者通常依据特定的框架实现更为复杂的商业运用和业务逻辑。这样的软件应用可以在支持同一种框架的软件系统中运行。

  

简而言之,框架就是制定一套规范或者规则(思想),大家(程序员)在该规范或者规则(思想)下工作。或者说就是使用别人搭好的舞台,你来做表演。

我比较喜欢最后一句的解释,别人搭好舞台,我来表演。这也就是说,如果我在做web项目的时候,能够省却很多开发工作。的确是。所有,做web开发,要用一个框架。

有高手工程师鄙视框架,认为自己编写的才是王道。这方面不争论,框架是开发中很流行的东西,我还是固执地认为用框架来开发,更划算。

python框架

有人说php(什么是php,严肃的说法,这是另外一种语言,更高雅的说法,是某个活动的汉语拼音简称)框架多,我不否认,php的开发框架的确很多很多。不过,python的web开发框架,也足够使用了,列举几种常见的web框架:

Django:这是一个被广泛应用的框架,如果看官在网上搜索,会发现很多公司在招聘的时候就说要会这个,其实这种招聘就暴露了该公司的开发水平要求不高。框架只是辅助,真正的程序员,用什么框架,都应该是根据需要而来。当然不同框架有不同的特点,需要学习一段时间。

Flask:一个用Python编写的轻量级Web应用框架。基于Werkzeug WSGI工具箱和Jinja2模板引擎。

Web2py:是一个为Python语言提供的全功能Web应用框架,旨在敏捷快速的开发Web应用,具有快速、安全以及可移植的数据库驱动的应用,兼容Google App Engine(这是google的元计算引擎,后面我会多带带介绍)。

Bottle: 微型Python Web框架,遵循WSGI,说微型,是因为它只有一个文件,除Python标准库外,它不依赖于任何第三方模块。

Tornado:全称是Torado Web Server,从名字上看就可知道它可以用作Web服务器,但同时它也是一个Python Web的开发框架。最初是在FriendFeed公司的网站上使用,FaceBook收购了之后便开源了出来。

webpy: 轻量级的Python Web框架。webpy的设计理念力求精简(Keep it simple and powerful),源码很简短,只提供一个框架所必须的东西,不依赖大量的第三方模块,它没有URL路由、没有模板也没有数据库的访问。

说明:以上信息选自:http://blog.jobbole.com/72306/,这篇文章中还有别的框架,由于不是web框架,我没有选摘,有兴趣的去阅读。

Tornado

一看到这个标题就知道,本教程中将选择使用这个框架。此前有朋友建议我用Django,首先它是一个好东西。但是,我更愿意用Tornado,为什么呢?因为......,看下边或许是理由,也或许不是。

Tornado全称Tornado Web Server,是一个用Python语言写成的Web服务器兼Web应用框架,由FriendFeed公司在自己的网站FriendFeed中使用,被Facebook收购以后框架以开源软件形式开放给大众。看来Tornado的出身高贵呀,对了,如果是在天朝的看官,可能对Facebook有风闻,但是要一睹其芳容,还要努力。或者有人是不是怀疑这个地球上就没有这个网站呢?哈哈。按照某个地方的网络,它是存在的。废话不说,还是看Tornado的性能,因为选框架,一定要选好性能的,没准儿什么时候你也开发高大上的东西了。

Tornado的性能是相当优异的,因为它师徒解决一个被称之为“C10k”问题,就是处理大于或等于一万的并发。一万呀,这可是不小的量。(关于C10K问题,看官可以浏览:C10k problem)

下表是和一些其他Web框架与服务器的对比,供看官参考(数据来源:https://developers.facebook.com/blog/post/301)

条件:处理器为 AMD Opteron, 主频2.4GHz, 4核

服务 部署 请求/每秒
Tornado nginx, 4进程 8213
Tornado 1个单线程进程 3353
Django Apache/mod_wsgi 2223
web.py Apache/mod_wsgi 2066
CherryPy 独立 785

看了这个对比表格,还有什么理由不选择Tornado呢?

就是它了——Tornado

安装Tornado

Tornado的官方网站:http://www.tornadoweb.org

在官网上,有安装方法,其实,看官也可以直接在官方上学习。另外,有一个中文镜像网站,看官也可以访问:http://www.tornadoweb.cn/

我在自己电脑中(ubuntu12.04),用下面方法安装,只需要一句话即可:

pip install tornado

这是因为Tornado已经列入PyPI,因此可以通过 pip 或者 easy_install 来安装。

如果你没有安装 libcurl 的话,你需要将其多带带安装到系统中。请参见下面的安装依赖一节。

如果不用这种方式安装,下面的页面中有可以供看官下载的最新源码版本和安装方式:

https://pypi.python.org/pypi/tornado/

此外,在github上也有托管,看官可以通过上述页面进入到github看源码。

最后要补充一个要点,就是上述下载的Tornado无法直接安装在windows上,如果要在windows上安装,建议使用pypm(这是一个什么东西,关于这个东西,可以访问官方文档:http://docs.activestate.com/activepython/2.6/pypm.html,说实话,我也没有用过它,只是看了看文档罢了。看官如果有使用的,可以写一个教程共享之。),如下安装:

C:> pypm install tornado

首页|上一讲:用python操作数据库 3

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/37427.html

相关文章

  • 基础如何爬虫技术

    摘要:楚江数据是专业的互联网数据技术服务,现整理出零基础如何学爬虫技术以供学习,。本文来源知乎作者路人甲链接楚江数据提供网站数据采集和爬虫软件定制开发服务,服务范围涵盖社交网络电子商务分类信息学术研究等。 楚江数据是专业的互联网数据技术服务,现整理出零基础如何学爬虫技术以供学习,http://www.chujiangdata.com。 第一:Python爬虫学习系列教程(来源于某博主:htt...

    KunMinX 评论0 收藏0
  • 30岁基础编程,先哪种语言最好?

    摘要:大学,光学工程研究生毕业,和程序猿完全不搭边。那怎么办,试着学一学呗,学习才是程序猿的天性。所以我在想程序猿是不是都需要新知识刺激一下,才能保持兴奋的头脑。有句话说的很对程序猿就像好奇的猫,追着毛球的线头玩,最后一个毛球在脑袋里搅浆糊。 说说我自己的经历。211大学,光学工程研究生毕业,和程序猿完全不搭边。 毕业后进了成都某国字头研究所,在行业里摸爬滚打了四年,2018年机缘巧合在家养...

    xietao3 评论0 收藏0
  • [基础python]Tornado静态路径以及一个项目框架

    摘要:下面的例子就是一个项目的基本框架。一检查,发现一个重要的目录里面还空着呢,那里面放文件,这个文件里面是请求响应的类这个文件的代码没有什么增加的内容,只是多了三行设置为的配置,目的是避免汉字乱码。 just as the Son of Man came not to be served but to serve, and to give his life a ransom for ...

    golden_hamster 评论0 收藏0
  • AI习路线

    摘要:针对公司样本不足,采用小样本技术和深度学习技术结合,是项目落地的解决方案。深度学习作为当前机器学习领域最热门的技术之一,已经在图像处理领域获得了应用,并且展现出巨大的前景。旨在帮助同学们快速上手如何使用库来完整机器学习案例。 阶段一、人工智能基础 - 高等数学必知必会 本阶段主要从数据分析、概率论和线性代数及矩阵和凸优化这四大块讲解基础,旨在训练大家逻辑能力,分析能力。拥有良好的数学基...

    xuweijian 评论0 收藏0
  • Python从入门到转行

    摘要:学了大半年之后成功转行做前端了。包含大量其他神经网络库中的包装器和抽象,其中最值得注意的是,其中也包含一些机器学习的实用模块。它是轻量级可扩展的神经网络工具包,同时拥有友好的界面,可供机器学习的训练和预测使用。 题记:大二的时候发现人生苦短,所以信了拍神,开始学Python。学了大半年之后成功转行做前端了。来写个教程帮助大家入门Python。 Python零基础入门 零基础入门就得从最...

    ingood 评论0 收藏0

发表评论

0条评论

lucas

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<