免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1871 | 回复: 0
打印 上一主题 下一主题

有关数据建模 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-08-03 16:37 |只看该作者 |倒序浏览

                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 列表中即可完成此步骤。
将相应的应用安装进来自然模型就会有了的!
               
               
               
               
               

本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u2/84280/showart_2016459.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP