有关Python编程语言进行描述

开发 后端
用C++攥写一下Python编程语言编写扩展模块(动态链接库),在Python程序中调用C++开发的扩展功能函数。

前几天没事看了一下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了)。#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本身的定位是快速的互连网开发,它不需要太多的关注这个领域很少出现的东西,这样带来的优点是学习曲线的降低和开发效率的提高。

责任编辑:chenqingxiang 来源: CSDN
相关推荐

2010-03-01 15:23:24

Python操作语言

2010-02-23 10:44:00

Python 编程语言

2010-03-15 15:45:15

Python编程语言

2010-02-24 17:22:59

Python项目

2010-02-03 16:03:44

Python系统文件

2010-03-11 17:24:27

Python编程语言

2024-06-20 13:25:16

2010-02-26 15:43:02

Python线程

2010-10-27 10:19:33

UnicodeJava

2010-02-26 11:20:53

Python应用

2010-03-01 15:57:59

Python开发工具

2010-02-26 09:55:22

Python应用程序

2010-02-22 13:20:58

Python中文问题

2010-01-11 15:55:51

C++语言

2010-03-01 17:15:03

Python程序开发

2010-02-23 16:06:58

Python 命令行

2010-01-18 17:14:50

C++语言

2010-03-19 09:39:17

Python编程语言

2010-03-02 15:10:27

Android系统

2018-10-10 14:21:06

Python 工具程序员
点赞
收藏

51CTO技术栈公众号