有关Python编程语言进行描述

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

创新互联2013年开创至今,先为鹤壁等服务建站,鹤壁等地企业,进行企业商务咨询服务。为鹤壁企业网站制作PC+手机+微官网三网同步一站式服务解决您的所有建站问题。

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

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

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

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

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

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

 
 
 
  1. class Category(models.Model):   
  2.     id = models.AutoField('id', primary_key=True)   
  3.     name = models.CharField(maxlength=50)   
  4.     code = models.CharField(maxlength=50)   
  5.     parentCategory = models.ForeignKey('self', 'id', null=True)   
  6.     enable = models.BooleanField()   
  7.        
  8.     def __str__(self):   
  9.         return self.name   
  10.        
  11.     class Admin:   
  12.         list_display = ('id', 'name', 'code', 'parentCategory')  

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

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

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

网页标题:有关Python编程语言进行描述
URL链接:http://www.shufengxianlan.com/qtweb/news2/529352.html

网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联