web框架就是让开发者可以更简单地构建可靠的、可扩展的、可维护的web应用的代码库。
web框架包含了开发者在过去二十年构建动态web应用中得到的经验教训。框架的使用使得通用HTTP操作的代码复用变得简单,也使组织代码变得更为容易,因此提高了代码的可维护性。
框架会通过其本身的代码提供许多功能,也会通过扩展来实现运行一个web应用所需要的常用操作。这些常见的操作包括:
当然,不是所有web框架都提供上述功能,框架从实现简单的单一用例到包罗万象不一而足,当然对于每个开发者来说复杂度也在提升。一些框架通过“内置电池”的方法来使实现任何功能变得可能,一些则仅仅提供最小化的代码库依靠扩展来实现前者想要实现的功能。
举个例子,Django这个web应用框架内置了一个对象关系映射(ORM)层来抽象关系型数据库的读、写、查询、删除操作。但是,Django的这个ORM层如果不经过大量修改,怕是很难很好的与诸如MongoDB这样的非关系型数据库协作。 一些其他的框架诸如Flask和Pyramid则可以通过导入Python外部库从而更容易的使用非关系型数据库。通常,提供最小化功能而易于扩展的框架和所有功能紧密耦合的框架是框架的两大分野。
Jeff Knupp写的"web框架是什么?"这篇文章深入地解释了web框架是什么,以及与web服务器的关系。
查看Stack Overflow上关于 "web框架是什么?它相比LAMP怎么样?"这个问题的答案。
Python web框架一览 介绍了包含Django、Flask、Bottle以及一些其他知名度较低的框架。
初学框架的时候,选择一个主流的框架 (推荐Django或者Flask)深入学习,而不是企图理解每一种框架的用法。
去框架的资源链接里找一个复杂详细的教程深入地学习。
去学习一下那些使用你心仪的框架开发出来的开源应用的代码,也许他们的代码也可以用到你的应用中去呢。
去写出你的第一个简单的web应用,然后到部署这一节去把它放到网上吧。