Maison >développement back-end >Tutoriel Python >有关Python编程语言进行描述

有关Python编程语言进行描述

黄舟
黄舟original
2016-12-16 16:16:131225parcourir

前几天没事看了一下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.php.cn)! 


Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn