热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

微框架python_14个Python微型框架

本文由伯乐在线-艾凌风翻译,进林校稿。未经许可,禁止转载!英文出处:codecondo.com。欢迎加入翻译组。我最近发表了

本文由 伯乐在线 - 艾凌风 翻译,进林 校稿。未经许可,禁止转载!

英文出处:codecondo.com。欢迎加入翻译组。

我最近发表了一篇名为 7 Minimal Node.js Web Frameworks for 2014 and Beyond的博文——目前它是我博客访问量最高的文章:超过10000人浏览,分享和评论了这些我总结到一起的web框架。

这教会了我一些事,这类文章是有需求的——因为它提供了触手可及的备查和/或探索了做事情的新方式。我发现很多“周刊”在他们的新闻或是博客上刊登了我的文章,对此我感到很高兴。这促使我尝试把更多其他语言中的此类内容总结到一起,比如Python、Ruby、PHP和Javascript。

众口难调,我尽量把我搜索的时候出现在靠前位置的那些框架都囊括进来了, 我试着以社区规模大小以及它们在GitHub上的活跃度来为它们排名。我建议您在留言中列出您个人最喜爱的框架(或是您正在使用的框架)的链接,我会尽快把它加入到列表中。

Python 是一个可以让你更快地完成工作,更高效地整合系统的语言。你可以学习使用Python并且马上获得生产力的提升,降低维护成本。

Python版的Hello World程序

你可能忘记该怎么做了,下面是一个提示。 print “Hello World!”;

我还特别喜欢这一段代码,

for i in ["/","*","|","","|"]:

print "%sr" % i,

##Python的Web框架

当一些基础工作不需要你操心的时候,工作起来会比较容易,这也是为什么框架在各个语言的开发者社区中变得如此流行的原因,你无法否认的是,拼装一个网页或是一个项目,比起不得不创建你自己的类或方法要容易的多。

我秉承自己的承诺,在本文或是将来任何的榜单中,不偏向任何一个框架,所有的选择都基于我个人意见和喜好。如果你可以和朋友们分享本文,在你自己的博客上面宣传一下我会很感激你的。同时我也很感激那些让这些Python web框架成为可能所付出的辛勤劳动。

Bobo是一个轻量级的框架,用来创建WSGI web应用。它的目标是简单易用,容易记忆。

它强调两个方面的内容:

1)把URL映射到对象;

2)调用对象来生成HTTP响应。

Bobo 并不具备模板语言,数据库集成层或是其他一些WSGI中间件或特定应用程序库所提供的功能。Bobo建立在其他框架之上,尤其是WSGI和WebOb。

###Bottle

Bottle是一个快速、简单、轻量级的WSGI微型Python web框架。它仅包含单一文件模块,并且不依赖除了Python标准库以外的其他库。

它支持类似Google App Engine、Python Paste这样的应用,还包含了对一些模板的支持,比如Cheetah和Mako。

###CherryPy

CherryPy 允许开发者以他们构建其他面向对象Python程序近乎同样的方式来开发web应用。这使得可以在更短的时间内开发出更精简的源代码。CherryPy允许你进行很多常规的Python编程,但是它并没有整合一个模板系统,你需要自己去找一个。(它支持大多数的模板)

CherrPy 能够很好适应默认的Python功能和结构,它在使用更少的代码创建web应用

###Cyclone

Cyclone 是一个Python的web服务框架,它基于Twisted protocol实现了Tornado API 。我将把对这个框架的介绍,交给7co.的Gleicon,请看他的文章。

###Flask

Flask是一个基于Werkzeug 和 Jinja2的微型Python框架。它的目的是更快地上手,基于很多很好的想法开发出来的。你可以在 Wikipedia上了解更多内容。

###Itty-Bitty

itty.py是一个小实验,是受Sinatra的影响而尝试实现的一个微型框架,它刚好够用,没有额外的东西了。

当前支持:

路由

内容类型

基本响应

HTTP状态码

URL参数

支持基本的GET/POST/PUT/DELETE

用户可定义的错误处理器

重定向

文件上传

报头

静态媒体储存

当心!如果你是要找一个久经考验的,企业级框架,你就来错地方了。但是它确实很有趣。

###Klein

Klein是一个使用Python来开发可用于生产环境web服务的微型框架。它基于使用非常广泛且经过良好测试的组件,比如Werkzeug和Twisted,以及近乎完全的测试覆盖率。你可以阅读这篇文章来查看介绍。(也许有点过时了)

###Morepath

Morepath是具有强大的能力的Python 微型web框架。Morepath是一个Python WSGI微型框架。他使用路由,但是是针对模型的路由。Morepath是一个模型驱动,灵活的框架,这使得它富有表达力。这里有篇文章,关于Morepath的一些细节和建议。

###ObjectWeb

ObjectWeb 是一个快速,极简的纯Python web框架,不依赖任何的第三方库。它围绕Python进行设计,因为起初想要把它当做面向对象的编程语言来使用。ObjectWeb支持CGI和WSGI标准,而且有一个内建的开发服务器。我觉得它是由这个家伙设计的

###Pecan

创造Pecan是为了填补Python web框架世界的一个空缺——一个提供object-dispatch方式路由的超轻量级的框架。Pecan的目标并不是要成为一个“全栈”框架,因此没有支持一些额外的功能,比如session或是数据库 。相反,Pecan专注于HTTP本身。

###Pyramid

Pyramid是一款非常通用的开源web框架。作为一个框架,它的首要任务是让开发者创建web应用变得简单。web应用的类型并不重要,可以是一个电子表单、一个企业内部网或者是一个社交平台。Pyramid非常通用,可以在各种各样的情况下使用它。

通过阅读/观看SixFeetUp上Caliy的这个教程,你可以学到更多关于Pyramid的东西。

###Tornado

Tornado是一个Python web框架,而且是一个异步网络库,最初是为 FriendFeed开发的。通过使用非阻塞I/O,Tornado可以处理数以万计打开的链接,这使它成为长轮询、WebSocket和其他需要为用户提供长连接的应用的理想选择。

Thomas Allen写了一个简单的教程,关于Tornado是如何工作的以及如何创建一个简单的静态页面。

###web.py

web.py是一个Python 的web框架,既简单,有强大。web.py处于公有域内,你可以处于任何目的去使用它,没有限制。你可以看Lucas’s Kauffman博客上的指导文章以及关于它和Django的比较(好吧,我认为我们不能管这叫做比较)。

###Wheezy Web

一个轻量级、高性能、高并发的WSGI web框架,具备创建现代,高效网络应用的关键功能。这里有一篇来自Andriy Kornatskyy,关于Wheezy的介绍

##Python的最小Web框架

我想,有件事还是值得一提,这些框架实际上都是极小的。因此,像web2py和Django这些框架都不会出现在这个列表中。我欢迎大家反馈,审查各个框架,我同时想知道大家对一份全尺寸web框架的列表是否有兴趣?(这将会包括Django)

我把这些框架放在一起,而且我无意间发现了一些很好的文章——其中一个是一些Python web框架的基准测试,这些框架大多数都在本文中列出了。这个基准测试是由Faruk Akgul所完成的,可以点击这个链接查看

Python的官方页面同样也有专门关于web框架的章节,也许你也想读一下

下一个是什么?Ruby或者PHP?

photo by francois



推荐阅读
  • 本文介绍了如何使用PHP向系统日历中添加事件的方法,通过使用PHP技术可以实现自动添加事件的功能,从而实现全局通知系统和迅速记录工具的自动化。同时还提到了系统exchange自带的日历具有同步感的特点,以及使用web技术实现自动添加事件的优势。 ... [详细]
  • 知识图谱——机器大脑中的知识库
    本文介绍了知识图谱在机器大脑中的应用,以及搜索引擎在知识图谱方面的发展。以谷歌知识图谱为例,说明了知识图谱的智能化特点。通过搜索引擎用户可以获取更加智能化的答案,如搜索关键词"Marie Curie",会得到居里夫人的详细信息以及与之相关的历史人物。知识图谱的出现引起了搜索引擎行业的变革,不仅美国的微软必应,中国的百度、搜狗等搜索引擎公司也纷纷推出了自己的知识图谱。 ... [详细]
  • flowable工作流 流程变量_信也科技工作流平台的技术实践
    1背景随着公司业务发展及内部业务流程诉求的增长,目前信息化系统不能够很好满足期望,主要体现如下:目前OA流程引擎无法满足企业特定业务流程需求,且移动端体 ... [详细]
  • 网络请求模块选择——axios框架的基本使用和封装
    本文介绍了选择网络请求模块axios的原因,以及axios框架的基本使用和封装方法。包括发送并发请求的演示,全局配置的设置,创建axios实例的方法,拦截器的使用,以及如何封装和请求响应劫持等内容。 ... [详细]
  • POCOCLibraies属于功能广泛、轻量级别的开源框架库,它拥有媲美Boost库的功能以及较小的体积广泛应用在物联网平台、工业自动化等领域。POCOCLibrai ... [详细]
  • 前言:原本纠结于Web 模板,选了Handlebars。后来发现页面都是弱逻辑的,不支持复杂逻辑表达式。几乎要放弃之际,想起了Javascript中eval函数。虽然eval函 ... [详细]
  • JavaScript和Python是用于构建各种应用程序的两种有影响力的编程语言。尽管JavaScript多年来一直是占主导地位的编程语言,但Python的迅猛发展有 ... [详细]
  • DAO设计模式(九)_1.设计分层初步 ... [详细]
  • 使用CocoaPods管理依赖库
    这篇内容将介绍Mac和iOS开发中必备的一个依赖库管理工具CocoaPods。在iOS开发中势必会用到一些第三方依赖库,比如大家都熟悉的ASIHttpRequest、AFNetwo ... [详细]
  • java ssm框架_Java SSM框架的简单搭建
    1.添加依赖包,可以通过properties统一框架版本UTF-81.71.75.0.8.RELEASEjunitjunit4.11testjavax.servlet ... [详细]
  • Hadoop——Hive简介和环境配置
    一、Hive的简介和配置1.简介Hive是构建在Hadoop之上的数据操作平台lHive是一个SQL解析引擎,它将SQL转译成MapReduce作业,并 ... [详细]
  • 本文讨论了Alink回归预测的不完善问题,指出目前主要针对Python做案例,对其他语言支持不足。同时介绍了pom.xml文件的基本结构和使用方法,以及Maven的相关知识。最后,对Alink回归预测的未来发展提出了期待。 ... [详细]
  • 如何用UE4制作2D游戏文档——计算篇
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了如何用UE4制作2D游戏文档——计算篇相关的知识,希望对你有一定的参考价值。 ... [详细]
  • 技术周报·2021-05-07-小编推荐向现代Javascript转型原文标题:Publish,ship,andinstallmodernJavaScriptforfaste ... [详细]
  • ruby 输出彩色内容到控制台
    程序输出控制台时,为了区分输出信息的严重程度,可以使用颜色、符号等来做标识。ruby也支持设置输出内容的颜色,比如运行以下代码:以下内容是百度到的,因发现很多博客都是同样的写法,所 ... [详细]
author-avatar
婉里去_
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有