Chinaunix首页 | 论坛 | 博客
  • 博客访问: 29990516
  • 博文数量: 2065
  • 博客积分: 10377
  • 博客等级: 上将
  • 技术积分: 21525
  • 用 户 组: 普通用户
  • 注册时间: 2008-11-04 17:50
文章分类

全部博文(2065)

文章存档

2012年(2)

2011年(19)

2010年(1160)

2009年(969)

2008年(153)

分类: Python/Ruby

2009-08-03 16:37:55

1.django中支持一对一,多对多,多对一的关系定义。但一般是先得到一个表的对象,然后通过这个对象再得到其它表的对象,所以不是一次性查所相关表的所有字段。因为django是采用ORM的处理方式。如果要实现复杂的多表查询,要使用底层的cursor来处理。
2.ORM方式与简单的SQL的方式本来就不一样。ORM在处理单条记录时,以对象方式来操作很方便,但对于复杂的查询,多表组合就不方便了。我想这是出于使 用目的不同造成的。没有万能药。Sqlalchemy在这方面可能不错,它但其实是可以让你选择是使用ORM来是SQL方式,是一个集成。而Django 没有提供包装得比较好的SQL的方式。虽然它提供了extra子句,但可能还不是足够方便。
3.看来以后要SQL 加 ORM混合使用了,因为基本上一个稍大点的网站都是多表联合查询的


1.控制器通过从模型层提取出来数据然后开始渲染模板
from mysite.books.models import Book
def book_list(request):
    books = Book.objects.order_by('name') #实现了传统的SQL语句功能
    return render_to_response('book_list.html', {'books': books})

数据存取逻辑、业务逻辑和表现逻辑组合在一起的概念有时被称为软件架构的 Model-View-Controller (MVC)模式。在这个模式中, Model 代表数据存取层,View 代表的是系统中选择显示什么和怎么显示的部分,Controller 指的是系统中根据用户输入并视需要访问模型,以决定使用哪个视图的那部分。

模型层的:实现的功能方法是封装数据存取逻辑
控制器的:实现业务逻辑
表现逻辑:视图层

一个project包含很多个Django app以及对它们的配置。

技术上,project的作用是提供配置文件,比方说哪里定义数据库连接信息, 安装的app列表, TEMPLATE_DIRS ,等等。

一个app是一套Django功能的集合,通常包括模型和视图,按Python的包结构的方式存在。

例如,Django本身内建有一些app,例如注释系统和自动管理界面。 app的一个关键点是它们是很容易移植到其他project和被多个project重用。


如果你只是建造一个简单的web站点,那么可能你只需要一个app就可以了。如果是复杂的象电子商务之类的Web站点,你可能需要把这些功能划分成不同的app,以便以后重用。

模型安装

完成这些代码之后,现在让我们来在数据库中创建这些表。要完成该项工作,第一步是在 Django 项目中 激活 这些模型。将 books app 添加到配置文件的已 installed apps 列表中即可完成此步骤。


将相应的应用安装进来自然模型就会有了的!




阅读(621) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~