从入门级选手到专业级选手都在做的——爬虫
用Python写爬虫的教程网上一抓一大把,据我所知很多初学Python
的人都是使用它编写爬虫程序。小到抓取一个小黄图网站,大到一个互联网公司的商业应用。通过Python
入门爬虫比较简单易学,不需要在一开始掌握太多太基础太底层的知识就可以很快上手,而且很快可以做出成果,非常适合小白一开始想做出点看得见的东西的成就感。
除了入门,爬虫也被广泛应用到一些需要数据的公司、平台和组织,通过抓取互联网上的公开数据,来实现一些商业价值是非常常见的做法。当然这些选手的爬虫就要厉害的多了,需要处理包括路由、存储、分布式计算等很多问题,与小白的抓黄图小程序,复杂度差了很多倍。
Web程序
除了爬虫,Python也广泛应用到了Web端程序,比如你现在正在使用的知乎,主站后台就是基于Python的tornado
框架,豆瓣的后台也是基于Python。除了tornado(TornadoWebServer),Python常用的Web框架还有
Flask(Welcome|Flask(APythonMicroframework)),Django(TheWebframeworkfor
perfectionistswithdeadlines)等等。通过上述框架,你可以很方便实现一个Web程序,比如我认识的一些朋友,就通过Python
自己编写了自己的博客程序,包括之前的huphoto,我就是通过Flask
实现的后台(出于版权等原因,我已经停掉了这个网站)。除了上述框架,你也可以尝试自己实现一个Web框架。
桌面程序
Python也有很多UI库,你可以很方便地完成一个GUI程序(话说我最开始接触编程的时候,就觉得写GUI好炫酷,不过搞了好久才在VC6
搞出一个小程序,后来又辗转Delphi、Java等,最后接触到Python的时候,我对GUI已经不感兴趣了)。Python实现GUI
的实例也不少,包括大名鼎鼎的Dropbox,就是Python实现的服务器端和客户端程序。
人工智能(AI)与机器学习
人工智能是现在非常火的一个方向,AI热潮让Python语言的未来充满了无限的潜力。现在释放出来的几个非常有影响力的AI框架,大多是Python的实现,为什么呢因为Python足够动态、具有足够性能,这是AI技术所需要的技术特点。比如基于Python的深度学习库、深度学习方向、机器学习方向、自然语言处理方向的一些网站基本都是通过Python来实现的。
机器学习,尤其是现在火爆的深度学习,其工具框架大都提供了Python接口。Python在科学计算领域一直有着较好的声誉,其简洁清晰的语法以及丰富的计算工具,深受此领域开发者喜爱。
早在深度学习以及Tensorflow等框架流行之前,Python中即有scikit-learn,能够很方便地完成几乎所有机器学习模型,从经典数据集下载到构建模型只需要简单的几行代码。配合Pandas、matplotlib等工具,能很简单地进行调整。
而Tensorflow、PyTorch、MXNet、Keras等深度学习框架更是极大地拓展了机器学习的可能。使用Keras编写一个手写数字识别的深度学习网络仅仅需要寥寥数十行代码,即可借助底层实现,方便地调用包括GPU在内的大量资源完成工作。
值得一提的是,无论什么框架,Python只是作为前端描述用的语言,实际计算则是通过底层的C/C++实现。由于Python能很方便地引入和使用C/C++项目和库,从而实现功能和性能上的扩展,这样的大规模计算中,让开发者更关注逻辑于数据本身,而从内存分配等繁杂工作中解放出来,是Python被广泛应用到机器学习领域的重要原因。
科学计算
Python的开发效率很高,性能要求较高的模块可以用C改写,Python调用。同时,Python
可以更高层次的抽象问题,所以在科学计算领域也非常热门。包括scipy、numpy
等用于科学计算的第三方库的出现,更是方便了又一定数学基础,但是计算机基础一般的朋友。
1、Django框架
优点:是一个高层次Python Web开发框架,特点是开发快速、代码较少、可扩展性强。Django采用MTV(Model、Template、View)模型组织资源,框架功能丰富,模板扩展选择最多。对于专业人员来说,Django是当之无愧的Python排名第一的Web开发框架。
缺点:包括一些轻量级应用不需要的功能模块,不如Flask轻便。过度封装很多类和方法,直接使用比较简单,但改动起来比较困难。相比于 C,C++性能,Django性能偏低。模板实现了代码和样式完全分离,不允许模板里出现Python代码,灵活度不够。另外学习曲线也相对陡峭。
2、Flask框架
优点:Flask是一个Python Web开发的微框架,严格来说,它仅提供Web服务器支持,不提供全栈开发支持。然而,Flask非常轻量、非常简单,基于它搭建Web系统都以分钟来计时,特别适合小微原型系统的开发。花少时间、产生可用系统,是非常划算的选择。
缺点:对于大型网站开发,需要设计路由映射的规则,否则导致代码混乱。对新手来说,容易使用低质量的代码创建 “不良的web应用程序”。
3、Pyramid框架
优点:是一个扩展性很强且灵活的Python Web开发框架。上手十分容易,比较适合中等规模且边开发边设计的场景。Pyramid不提供绝对严格的框架定义,根据需求可以扩展开发,对高阶程序员十分友好。
缺点:国内知名度不高,高级用法需要通过阅读源代码获取灵感。默认使用Chameleon模板,灵活度没有成为一个要素。
4、webpy框架
优点:正如其名,webpy是一个采用Python作为开发语言的Web框架,简单且强大。俄罗斯排名第一的Yandex搜索引擎基于这个框架开发,Guido van Rossum认为这是最好的Python Web框架,还需要说别的吗有事实作证、有大牛认可,用起来吧!
缺点:Webpy并未像其他框架一样保持与Python 3兼容性的最新状态。这不仅意味着缺乏对异步语法的支持,还意味着缺少对已弃用的函数的错误。此外,目前尚不清楚维护者是否有计划在Python 2到达其支持生命周期结束后保持Webpy的最新状态。
5、Tornado框架
优点:Tornado是一个基于异步网络功能库的Web开发框架,因此,它能支持几万个开放连接,Web服务高效稳定。可见,Tornado适合高并发场景下的Web系统,开发过程需要采用Tornado提供的框架,灵活性较差,确定场景后再考虑使用不迟。
缺点:Tornado 50改进了与Python的本机异步功能的集成。因此不再支持Python 33并且Python 35用户必须使用Python 352或更高版本。Tornado 60将需要Python 35及更高版本,并将完全放弃Python 2支持。
以上就是关于设计WEB站点的一般步骤全部的内容,包括:设计WEB站点的一般步骤、Python 有哪些好的 Web 框架、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)