2、python的10大Web框架有哪些,以及它们各自的特点?
3、本文只是这10大框架做了简单介绍,让你对它们有个初步的了解。
Python 是一门动态、面向对象语言。其最初就是作为一门面向对象语言设计的,并且在后期又加入了一些更高级的特性。除了语言本身的设计目的之外,Python标准 库也是值得大家称赞的,Python甚至还自带服务器。其它方面,Python拥有足够多的免费数据函数库、免费的Web网页模板系统、还有与Web服务 器进行交互的库、这些都可以设计到你的Web应用程序里面。在这篇文章里,我们将为Python Web开发者介绍基于Python的10大Web应用框架。
1、CubicWeb
1.jpg (101.51 KB, 下载次数: 2)
2015-7-16 11:04 上传
CubicWeb的最重要的支柱就是代码的可重用性。CubicWeb宣扬自己不仅是一个Web开发框架,而且还是一款语义Web开发框架。CubicWeb使用关系查询语言(RQL Relation Query Language)与数据库之间进行通信。
2、Zope2
2.jpg (53.86 KB, 下载次数: 1)
2015-7-16 11:04 上传
Zope 2是一款基于Python的Web应用框架,是所有Python Web应用程序、工具的鼻祖,是Python家族一个强有力的分支。Zope 2的“对象发布”系统非常适合面向对象开发方法,并且可以减轻开发者的学习曲线,还可以帮助你发现应用程序里一些不好的功能。
3、Web2py
3.jpg (99.94 KB, 下载次数: 1)
2015-7-16 11:04 上传
Web2py是一个用Python语言编写的免费的开源Web框架,旨在敏捷快速的开发Web应用,具有快速、可扩展、安全以及可移植的数据库驱动的应用,遵循LGPLv3开源协议。
Web2py提供一站式的解决方案,整个开发过程都可以在浏览器上进行,提供了Web版的在线开发,HTML模版编写,静态文件的上传,数据库的编写的功能。其它的还有日志功能,以及一个自动化的admin接口。
4、TurboGears
4.jpg (95.37 KB, 下载次数: 1)
2015-7-16 11:04 上传
它是另外一个基于 Python 的 MVC 风格的 Web 应用程序框架。
TurboGears 开发人员称这个项目是一个 “大框架(megaframework)”,这是因为它是由现有的子项目构成的。TurboGears 可以帮助将很多主要组件集成在一起:MochiKit:JavaScript 库
Kid:模板语言
CherryPy:基本 Web 框架
SQLObject:对象关系映射器(ORM)
5、Pylons
5.jpg (131.51 KB, 下载次数: 1)
2015-7-16 11:04 上传
Pylons是一个开放源代码的Web应用框架,使用python语言编写。它对WSGI标准进行了扩展应用,提升了重用性且将功能分割到独立的模块中。
Pylons是最新的Web应用框架中的典型,类似于Django和TurboGears。Pylons受Ruby on Rails影响很深:它的两个组件,Routes和WebHelpers是Rails特性的Python实现。
6、Grok
6.jpg (79.28 KB, 下载次数: 0)
2015-7-16 11:04 上传
Grok 是一个为 Python 开发者提供的Web应用开发框架,Grok 的重点是敏捷开发,是一个易用而且功能强大的开发框架,基于 Zope 3 技术。
7、Web.py
7.jpg (69.53 KB, 下载次数: 2)
2015-7-16 11:10 上传
Web.py是一个轻量级的开源Python Web框架,小巧灵活、简单并且非常强大,在使用时没有任何限制。目前Web.py被广泛运用在许多大型网站,如西班牙的社交网站Frinki、主页日平均访问量达7000万次的Yandex等。
8、Pyramid
8.jpg (98 KB, 下载次数: 2)
2015-7-16 11:10 上传
Pyramid也是一款轻量级的开源Python Web框架,是Pylons项目的一部分。Pyramid只能运行在Python 2.x或2.4以后的版本上。在使用后端数据库时无需声明,在开发时也不会强制使用一些特定的模板系统。
9、CherryPy
9.jpg (83.16 KB, 下载次数: 2)
2015-7-16 11:11 上传
CherryPy是一个基于Python的Web使用程序开发框架,它极大地简化了运用 Python 的web开发人员的工作。它为Python开发人员提供了友好的HTTP协议接口。大家知道,HTTP可是万维网的支柱协议,而CherryPy将HTTP协议简化成Python API来供Python 开发人员使用,这极大地简化了Web开发人员对HTTP协议的操作。CherryPy自身内置了一个HTTP服务器,或者称为Web服务器。这样,对于CherryPy的用户来说,不用另外搭设Web服务器就能直接运行 CherryPy应用程序了。实际上,Web服务器是到达CherryPy应用程序的关口,是所有的HTTP请求和响应的必经之地。因此,可以这样理解 CherryPy内建的Web服务器:它是位于处理客户端与服务器端之间的一层软件,用于把底层TCP套按字传输的信息转换成Http请求,并传递给相应 的处理程序同时,还把上层软件传来的信息打包成Http响应,并向下传递给底层的TCP套按字。
10、Flask
10.jpg (52.97 KB, 下载次数: 2)
2015-7-16 11:10 上传
Flask是一个轻量级的Web应用框架, 使用Python编写。基于 WerkzeugWSGI工具箱和 Jinja2模板引擎。使用 BSD 授权。
Flask也被称为 “microframework” ,因为它使用简单的核心,用 extension 增加其他功能。Flask没有默认使用的数据库、窗体验证工具。然而,Flask保留了扩增的弹性,可以用Flask-extension加入这些功 能:ORM、窗体验证工具、文件上传、各种开放式身份验证技术
首先,my_dog = Dog()这个实例化方法肯定有问题,your_dog = Dog("hehe",6)这个是正确的,那么为何实际运行结果是相反的呢?
看这里,这是我修改后的代码:
class Dog():def __init__(self,name_of_dog,age_of_dog):
self.name = name_of_dog
self.age = age_of_dog
def setname(self,name):
self.name = name
def setage(self,age):
self.age = age
my_dog = Dog("haha",5)
my_dog.setname("haha")
my_dog.setage(5)
print("My dog's name is",my_dog.name)
print("It's",my_dog.age,"years old.")
your_dog = Dog()
运行结果:
这个才是正确的报错。
你的错误在于:
def _init_(self,name_of_dog,age_of_dog):应该是:
def __init__(self,name_of_dog,age_of_dog):希望可以帮到你。
1. - 运行速度慢,因为Python是解释型语言,是一种高级语言,代码会在执行的时候,一行一行的使用解释器翻译成底层代码,翻译成机器码,而这个过程非常耗时,所以他运行过程中,比很多语言的代码都慢了很多。- 线程不能利用多CPU,这是Python最大的确定,GIL即全局解释器锁(Global Interpreter Lock),是计算机程序设计语言解释器用于同步线程的工具,使得任何时刻仅有一个线程在执行,Python的线程是操作系统的原生线程。在Linux上为pthread,在Windows上为Win thread,完全由操作系统调度线程的执行。一个python解释器进程内有一条主线程,以及多条用户程序的执行线程。即使在多核CPU平台上,由于GIL的存在,所以禁止多线程的并行执行。
Python的优缺点可以看看传智播客的社区,里面很多技术老师写的相关文章。并且有学习线路图适合小白学习,每个板块下面都有配套视频。