有关python编程语言进行描述

前几天没事看了一下python编程语言中的django,正如专家学者所言,想要做一名成功的开发人员,首先必备的就是掌握另外一门语言,于是我选择了python编程语言进行下手。

从这几天的学习中,我确实也发现其他语言及其框架等确实有一种与众不同的感觉。下面我把自己这几天看到的东西稍微作了一下总结。本文并不是django的教程,而是ahuaxuan对django的一些自己的理解,可能有些不成熟的地方,希望大家不要吝惜手中的砖头。

python编程语言的orm 如果有人问我最喜欢django什么,我会耗不犹豫的告诉你是django的orm,这个想法的产生完全来自于我长时间来积累的对hibernate的“不满”,虽然从理智的角度来看。

hibernate做的是非常的正确的,因为它并不是只针对互连网而产生的,它的主要市场应该还是在企业应用上,不过把它用在互联网并非不可以。只不过大家更多的时候会选择ibatis之类,因为不知道hibernate的人总是会说hibernate没有ibatis快(其实我最烦这个,片面的比较是没有意义的)。

正是hibernate的目标是打造成java界一个全方位,全能的orm框架,所以的它学习曲线和使用的复杂度日益的提升。要完全掌握好hibernate不是一件容易的事情(不要告诉我你会点crud,知道点lazy load你就掌握好hibernate了)。

详谈python企业应用广泛领域

一览清晰透明的python应用程序

如何创新python虚拟机线程

python主线程问题进行研究讨论

有关python线程操作问题进行学习研究

再回头来看django的orm,如果说要把hibernate说清楚需要800页的书,那么要把django的orm说清楚,200页就够了(事实上它的官方文档只有十几页的样子)。下面我举一个我正在做的例子。

这里有一个自关联的对象(事实上django的orm是基于model,这点和ror不太一样。有人跟我讲过ror是数据库驱动),这个对象有一个父对象,通常我们的菜单会定义成这样的对象,这样的菜单可以无限级向下扩展:

class category(models.model): id = models.autofield(‘id’, primary_key=true) name = models.charfield(maxlength=50) code = models.charfield(maxlength=50) parentcategory = models.foreignkey(‘self’, ‘id’, null=true) enable = models.booleanfield() def __str__(self): return self.name class admin: list_display = (‘id’, ‘name’, ‘code’, ‘parentcategory’)

python编程语言中又定义的admin是为django的admin模块服务的。 我们定义的域模型只需要这些代码就够了,models.model是父对象。所有的model对象都需要继承这个对象,这个对象提供了很多常用的数据库方法,不过不是基于sql的,还是基于对象的,如同criteria一样。下面列出常用的一些查询category的方法。

当然django的orm提供了很多很常用的功能,这里不一一举例了,注意,这里我说的是提供了很多很常用的功能,至于hibenate中比较复杂的映射策略。在django中我并没有看到。

但是我反而高兴我没有在django中找到这个功能,因为django本身的定位是快速的互连网开发,它不需要太多的关注这个领域很少出现的东西,这样带来的优点是学习曲线的降低和开发效率的提高。

以上就是有关python编程语言进行描述的内容,更多相关文章请关注php中文网(www.php1.cn)!

Posted in 未分类

发表评论