python都有哪些框架


前两天有小伙伴给我留言说:什么时候能出个Python框架的干货总结(本文列举只是一部分,并不包含所有Python框架),于是乎今天这篇文章孕育而生。(突然感觉自己很nice)

推荐一:Django(推荐学习:Python视频教程)
Django应该是最出名的Python框架,GAE甚至Erlang都有框架受它影响。Django是走大而全的方向,它最出名的是其全自动化的管理后台:只需要使用起ORM,做简单的对象定义,它就能自动生成数据库结构、以及全功能的管理后台。
优点:
开源框架,有完美的文档支持
解决方案众多,内部功能支持较多
优雅的URL,完整的路由系统
自助式的后台管理
缺点:
系统紧耦合,想用喜欢的第三方库来代替是非常难的,即使打了一些补丁用上了也会觉得非常别扭。
Django自带的ORM远不如SQLAlchemy强大。
Template功能比较弱,不能插入Python代码,要写复杂一点的逻辑需要另外用Python实现 Tag或Filter。
推荐二:Flask
Flask是一个用Python编写的轻量级Web应用框架。基于Werkzeug WSGI工具箱和Jinja2模板引擎。Flask也被称为“microframework”,因为它使用简单的核心,用extension增加其他功能。Flask没有默认使用的数 据库、窗体验证工具。
优点:
Flask比Django更灵活,用Flask来构建应用之前,选择组件的时候会给开发者带来更多的灵活性 ,可能有的应用场景不适合使用一个标准的ORM(Object-Relational Mapping对象关联映射),或者需要与不同的工作流和模板系统交互。
缺点:
Flask只是一个内核,默认依赖于两个外部库: Jinja2 模板引擎和 Werkzeug WSGI 工具集,其他很多功能都是以扩展的形式进行嵌入使用。
推荐三:Scrapy
Scrapy是Python开发的一个快速、高层次的屏幕抓取和web抓取框架,用于抓取web站点并从页面中提取结构化的数据。Scrapy用途广泛,可以用于数据挖掘、监测和自动化测试。
优点:
Scrapy是一个功能非常强大的爬虫框架,它不仅能便捷地构建request,还有强大的selector能够方便地解析response,然而它最受欢迎的还是它的性能,既抓取和解析的速度,它的downloader是多线程的,request是异步调度和处理的。这两点使它的爬取速度非常之快。
另外还有内置的logging,exception,shell等模块,为爬取工作带来了很多便利。
缺点:
scrapy是封装起来的框架,他包含了下载器,解析器,日志及异常处理,基于多线程, twisted的方式处理,对于固定单个网站的爬取开发,有优势,但是对于多网站爬取100个网站,并发及分布式处理方面,不够灵活,不便调整与括展。
推荐四:Tornado
Tornado是一种 Web 服务器软件的开源版本。Tornado 和现在的主流 Web 服务器框架(包括大多数 Python 的框架)有着明显的区别:它是非阻塞式服务器,而且速度相当快。
优点:
Tornado擅长为需要严密控制异步网络细节的应用程序提供基础架构。例如,Tornado不仅提供内置的异步HTTP服务器,还提供异步HTTP客户端。因此,Tornado非常适合构建应用程序,例如Web scraper或bot,它们并行查询其他站点并对返回的数据进行操作。
缺点:
模板和数据库部分有很多第三方的模块可供选择,这样不利于封装为一个功能模块。
推荐五:Web2py
web2py是一个为Python语言提供的全功能Web应用框架,旨在敏捷快速的开发Web应用,具有快速、安全以及可移植的数据库驱动的应用,兼容 Google App Engine。
优点:
Web2py最大的吸引力在于其内置的开发环境。当设置Web2py实例时,将获得一个Web界面,实际上是一个在线Python应用程序编辑器,可以在其中配置应用程序的组件。这通常意味着创建模型,视图和控制器,每个都通过Python模块或HTML模板进行描述。
缺点:
Web2py的一个重要限制是它仅与Python 2.x兼容。首先这意味着Web2py无法使用Python 3的异步语法。如果你依赖于Python3独有的外部库,那么你就不走运了。但是,正在开展使Web2py Python3兼容的工作,并且在撰写本文时它已接近完成。
推荐六:Weppy
Weppy感觉就像Flask的简约风格和Django的完整性之间的中间标记。虽然开发Weppy应用程序具有Flash的直接性,但Weppy具有Django中的许多功能,如数据层和身份验证。因此,Weppy适用于从极其简单到适度复杂的应用程序。
优点:
Weppy的文档与框架本身具有相同的风格。它干净,可读,并且被人类消费。除了通常的“hello world”应用程序示例之外,它还包含一个很好的演练教程,可以让你创建一个微博系统作为初学者项目。
缺点:
虽然Weppy有一个扩展机制,但官方批准的附加组件列表很小,远小于Flask的扩展目录。
推荐七:Bottle
Bottle可以被认为是一种迷你烧瓶,因为它比其他“微框架”更加紧凑和简洁。由于其占地面积最小,Bottle非常适合包含在其他项目中或快速交付REST API等小型项目。
优点:
Bottle不需要像其他框架那样多的文档,但文档绝不是吝啬。所有关键的东西都适合单个(尽管很长)的网页。除此之外,还可以找到每个API的完整文档,如何在各种基础架构上进行部署的示例,内置模板语言的解释以及一系列常见配方。
缺点:
Bottle极简主义的一个后果是有些功能根本就不存在。不支持表单验证,包括CSRF保护等功能。如果要构建支持高度用户交互的Web应用程序,则需要自己添加它们。
更多Python相关技术文章,请访问Python教程栏目进行学习!

  • python鏈変粈涔堟鏋
    绛旓細1銆丏jango Django鏄瘮杈冨嚭鍚嶇殑Python妗嗘灦锛屽畠鏈鍑哄悕鐨勬槸鍏跺叏鑷姩鍖栫殑绠$悊鍚庡彴锛屽彧闇瑕佷娇鐢ㄨ捣ORM锛屽仛绠鍗曠殑瀵硅薄瀹氫箟锛屽畠灏辫兘鑷姩鐢熸垚鏁版嵁搴撶粨鏋勩佷互鍙婂叏鍔熻兘鐨勭鐞嗗悗鍙般2銆Flask Flask鏄竴涓敤Python缂栧啓鐨勮交閲忕骇Web搴旂敤妗嗘灦锛屽熀浜嶹erkzeug WSGI宸ュ叿绠卞拰Jinja2妯℃澘寮曟搸銆侳lask涔熻绉颁负鈥渕icroframework鈥濓紝鍥犱负...
  • python妗嗘灦鏈夊摢浜
    绛旓細妗嗘灦灏辨槸閫氳繃鎻愪緵涓涓紑鍙慦eb绋嬪簭鐨勫熀鏈灦鏋勶紝鑰宲ython妗嗘灦灏辨槸鐢眕ython璇█缂栧啓鐨勬鏋讹紝python妗嗘灦鏈夛細Django銆丗lask銆丼crapy銆乀ornado銆乄eb2py绛銆侱jango锛欴jango搴旇鏄渶鍑哄悕鐨凱ython妗嗘灦锛屾渶鍑哄悕鐨勬槸鍏跺叏鑷姩鍖栫殑绠$悊鍚庡彴锛氬彧闇瑕佷娇鐢ㄨ捣ORM锛屽仛绠鍗曠殑瀵硅薄瀹氫箟锛屽畠灏辫兘鑷姩鐢熸垚鏁版嵁搴撶粨鏋勩佷互鍙婂叏鍔熻兘鐨勭鐞嗗悗...
  • python閮芥湁鍝簺妗嗘灦
    绛旓細锛堢獊鐒舵劅瑙夎嚜宸卞緢nice锛夋帹鑽愪竴锛欴jango锛堟帹鑽愬涔狅細Python瑙嗛鏁欑▼锛塂jango搴旇鏄渶鍑哄悕鐨凱ython妗嗘灦锛孏AE鐢氳嚦Erlang閮芥湁妗嗘灦鍙楀畠褰卞搷銆侱jango鏄蛋澶ц屽叏鐨勬柟鍚戯紝瀹冩渶鍑哄悕鐨勬槸鍏跺叏鑷姩鍖栫殑绠$悊鍚庡彴锛氬彧闇瑕佷娇鐢ㄨ捣ORM锛屽仛绠鍗曠殑瀵硅薄瀹氫箟锛屽畠灏辫兘鑷姩鐢熸垚鏁版嵁搴撶粨鏋勩佷互鍙婂叏鍔熻兘鐨勭鐞嗗悗鍙般備紭鐐癸細寮婧愭鏋讹紝鏈...
  • python閮芥湁鍝簺妗嗘灦?
    绛旓細5銆丆ubes Cubes浣滀负涓涓交閲忕骇Python OLAP妗嗘灦锛屽寘鍚簡OLAP銆佸缁存暟鎹垎鏋愬拰娴忚鑱氬悎鏁版嵁绛夊伐鍏枫6銆丳ulsar Pulsar鏄疨ython鐨勪簨浠堕┍鍔ㄥ苟鍙戞鏋躲傛湁浜唒ulsar锛屼綘鍙互鍐欏嚭鍦ㄤ笉鍚岃繘绋嬫垨绾跨▼涓繍琛屼竴涓垨澶氫釜娲诲姩鐨勫紓姝ユ湇鍔″櫒銆7銆乀ornado Tornado鍏ㄧО鏄疶orado Web Server锛屼粎浠呬粠瀹冪殑鍚嶅瓧涓婃垜浠氨鍙互鐭ラ亾瀹冨彲浠ョ敤...
  • python妗嗘灦鏄浠涔,涓绘祦妗嗘灦鏈夊摢浜
    绛旓細1銆丏jango: Python Web搴旂敤寮鍙戞鏋禗jango 搴旇鏄渶鍑哄悕鐨凱ython妗嗘灦锛孏AE鐢氳嚦Erlang閮芥湁妗嗘灦鍙楀畠褰卞搷銆侱jango鏄蛋澶ц屽叏鐨勬柟鍚戯紝瀹冩渶鍑哄悕鐨勬槸鍏跺叏鑷姩鍖栫殑绠$悊鍚庡彴锛氬彧闇瑕佷娇鐢ㄨ捣ORM锛屽仛绠鍗曠殑瀵硅薄瀹氫箟锛屽畠灏辫兘鑷姩鐢熸垚鏁版嵁搴撶粨鏋勩佷互鍙婂叏鍔熻兘鐨勭鐞嗗悗鍙般2銆丏iesel锛氬熀浜嶨reenlet鐨勪簨浠禝/O妗嗘灦Diesel鎻愪緵...
  • 鏈夊摢浜姣旇緝娴佽鐨 Python 妗嗘灦?
    绛旓細鐒惰岋紝濡傛灉浣犵殑鐩爣鏄嚜鍔ㄥ寲娴嬭瘯锛孲elenium鍒欐槸涓涓笉鍙垨缂虹殑浼欎即銆傚畠鏀寔澶氱涓绘祦娴忚鍣紝閰嶅悎鎻掍欢鍜Python鎺ュ彛锛屽彲浠ユ柟渚垮湴杩涜Web鐣岄潰娴嬭瘯锛屽挨鍏舵槸瀵逛簬閭d簺闇瑕佸鐞咼avaScript鐜鐨勫満鏅紝PhantomJS涓嶴elenium鐨勭粍鍚堟棤鐤戞槸涓涓己澶х粍鍚堛傛瘡涓妗嗘灦閮芥湁鍏剁嫭鐗圭殑搴旂敤鍦烘櫙鍜屼紭鍔匡紝閫夋嫨鍚堥傜殑妗嗘灦锛岃兘璁╀綘鐨...
  • 鍋囨湡瀛Python甯哥敤妗嗘灦
    绛旓細Django鏄竴涓紑鏀炬簮浠g爜鐨刉eb搴旂敤妗嗘灦, Python鍐欐垚閲囩敤浜 MVC鐨勬鏋舵ā寮, 鍗虫ā鍨婱, 瑙嗗浘V鍜屾帶鍒跺櫒C銆 Django鏄竴涓熀浜嶮vC鏋勯犵殑妗嗘灦銆備絾鏄湪jan go涓, 鎺у埗鍣ㄦ帴 鍙楃敤鎴疯緭鍏ョ殑閮ㄥ垎鐢辨鏋惰嚜琛屽鐞, 鎵浠jango閲屾洿鍏 娉ㄧ殑鏄ā鍨(Model) 銆佹ā鏉(Template) 鍜岃鍥(Views) 绉颁负MTV 妯″紡銆傚畠浠悇鑷殑鑱岃矗濡備笅: 妯...
  • Python涓鐨勭埇铏妗嗘灦鏈夊摢浜鍛?
    绛旓細Python涓湁寰堝浼樼鐨勭埇铏鏋讹紝甯哥敤鐨勬湁浠ヤ笅鍑犵锛1. Scrapy锛歋crapy鏄竴涓姛鑳藉己澶х殑寮婧愮埇铏鏋讹紝瀹冩彁渚涗簡瀹屾暣鐨勭埇铏祦绋嬫帶鍒跺拰鏁版嵁澶勭悊鍔熻兘锛屾敮鎸佸紓姝ュ拰鍒嗗竷寮忕埇鍙栵紝閫傜敤浜庡ぇ瑙勬ā鐨勬暟鎹噰闆嗕换鍔°2. BeautifulSoup锛欱eautifulSoup鏄竴涓敤浜庤В鏋怘TML鍜孹ML鏂囨。鐨凱ython搴擄紝瀹冩彁渚涗簡绠鍗曠伒娲荤殑API锛屽彲浠ユ柟渚垮湴...
  • 鏈夊摢浜沺ython妗嗘灦闇瑕佸涔
    绛旓細闇瑕佸涔犵殑python妗嗘灦鏈夛細1銆丏jango锛屽畠鏄竴涓珮绾х殑python web妗嗘灦锛屼互蹇熷紑鍙戝拰浣跨敤绠娲佺殑璁捐闂诲悕锛2銆丆herryPy锛屽畠鏄巻鍙叉渶涔呯殑妗嗘灦涔嬩竴锛岃繍琛岄潪甯哥ǔ瀹氫笖蹇燂紱3銆乄eb2Py锛屽畠鏄竴涓紑婧愩佸厤璐圭殑web妗嗘灦銆傚父鐢ㄧ殑浜斿ぇpython妗嗘灦锛氾紙鎺ㄨ崘鏁欑▼锛歅ython鍏ラ棬鏁欑▼锛1銆丏jango Django鏄竴涓珮绾х殑Python Web妗嗘灦...
  • Python涓夊ぇweb妗嗘灦鍒嗗埆鏄浠涔 鍝釜鏇村ソ
    绛旓細1銆丏jango Django鏄竴涓紑鏀炬簮浠g爜鐨刉eb搴旂敤妗嗘灦锛岀敱Python鍐欐垚銆傞噰鐢ㄤ簡MTV鐨勬鏋舵ā寮忥紝鍗虫ā鍨婱锛屾ā鏉縏鍜岃鍥綱銆傚畠鏈鍒濇槸琚紑鍙戞潵鐢ㄤ簬绠$悊鍔充鸡鏂嚭鐗堥泦鍥㈡棗涓嬬殑涓浜涗互鏂伴椈鍐呭涓轰富鐨勭綉绔欑殑锛屽嵆鏄疌MS(鍐呭绠$悊绯荤粺)杞欢銆2銆Flask Flask鏄竴涓娇鐢≒ython缂栧啓鐨勮交閲忕骇Web搴旂敤妗嗘灦銆傚叾 WSGI宸ュ叿绠遍噰鐢╓erkzeug...
  • 扩展阅读:web前端三大主流框架 ... 学python后到底能干什么 ... python跨平台app开发框架 ... java三大主流框架 ... python基础代码大全 ... python自动化测试框架 ... pythonweb三大框架 ... python网页框架 ... python初学编程必背 ...

    本站交流只代表网友个人观点,与本站立场无关
    欢迎反馈与建议,请联系电邮
    2024© 车视网