Python web 开发(三) 深入了解数据模型
时间:2010-04-20 来源:kkboy_dyc
在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 |
从以上代码中我们看出,我们先引用了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 = ( |
现在我们就可以通过manage.py来自动生成数据库表格了执行:
python manage.py syncdb
这条命令我们在最早创建django项目中执行过,当时是为了创建django项目自有的管理应用程序表格。在今后的开发中,不管什么时候,如果你需要增加一个数据模型,你都需要这条命令来同步你数据库中的数据表格。
其实我们可以通过如下命来来查看django究竟创建了一个什么样的数据表:
python manage.py sql bookmarsk
执行后会出现一段SQL语句,
BEGIN; |
很显然,django分析了我们先前创建的 Link 数据模型,也就是那个类 Link 并通过SQL语句创建了这个数据表。