Chinaunix首页 | 论坛 | 博客
  • 博客访问: 754140
  • 博文数量: 26
  • 博客积分: 8255
  • 博客等级: 中将
  • 技术积分: 934
  • 用 户 组: 普通用户
  • 注册时间: 2006-02-06 01:52
文章分类

全部博文(26)

文章存档

2012年(1)

2011年(8)

2010年(10)

2008年(7)

分类: Python/Ruby

2010-04-20 09:10:53

在Django中,我们通过基于 Python 的 API来对数据库进行操作,这有别于传统的SQL语言,所以在这里SQL会帮助你更好的理解数据库模型,但它不是必须的。
在bookmark找个项目中,我们需要存储三种类型的数据到数据库中:

1. User (ID, username, password, email)
2. Links (ID, URL)
3. Bookmarks (ID, title, user_id, link_id)

为了实现上述表结构,我们需要编辑 bookmarks/model.py

我们先从最简单 Links 表来入手,它是最简单的一个:

编辑 bookmarks/model.py

from django.db import models
class Link(models.Model):
    url=models.URLField=(unique=True)


从以上代码中我们看出,我们先引用了models这个包,因为它包含了创建model所必需的类,其次我们定义了一个类 Link,这个类继承了 models.Model类。我们定义了一个数据库中的字段 url , 它的类型是 models.URLField,并且是唯一的。

这里我们可能会对models.URLField感到迷惑,这其实是django对url这种类型的数据做出的预定义,提前设定好了该字段的大小,数据类型等等,我们只需要直接调用它就行了,不用自己手动指定了。

与其类似的还有很多,比如:

IntegerField -->  An integer.
TextField --> A large text field.
DateTimeField --> A date and time field.
EmailField --> An email field with 75 chars max.
URLField --> A URL field with 200 chars max.
FileField --> A file-upload field.

数据模型的代码写完了,但是要使用找个模型,我们还需要到django项目中去激活它。打开django_bookmarks/setting.py 找到 INSTALL_APPS

INSTALL_APPS = (
    'django.contrib.auth',
    .
    .
    .
    'django_bookmarks.bookmarks',#增加应用程序bookmarks
    )


现在我们就可以通过manage.py来自动生成数据库表格了执行:

python manage.py syncdb

这条命令我们在最早创建django项目中执行过,当时是为了创建django项目自有的管理应用程序表格。在今后的开发中,不管什么时候,如果你需要增加一个数据模型,你都需要这条命令来同步你数据库中的数据表格。

其实我们可以通过如下命来来查看django究竟创建了一个什么样的数据表:

python manage.py sql bookmarsk

执行后会出现一段SQL语句,

BEGIN;
CREATE TABLE `bookmarks_link` (
    `id` integer AUTO_INCREMENT NOT NULL PRIMARY KEY,
    `url` varchar(200) NOT NULL UNIQUE
)
;
COMMIT;


很显然,django分析了我们先前创建的 Link 数据模型,也就是那个类 Link 并通过SQL语句创建了这个数据表。
阅读(3041) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~