Chinaunix首页 | 论坛 | 博客
  • 博客访问: 288673
  • 博文数量: 33
  • 博客积分: 861
  • 博客等级: 军士长
  • 技术积分: 325
  • 用 户 组: 普通用户
  • 注册时间: 2011-02-26 09:35
文章存档

2013年(1)

2012年(8)

2011年(25)

分类: SQLite/嵌入式数据库

2011-02-26 09:57:38

首先,要想django支持数据库,得对其配置文件settings.py进行配置: DATABASES = { 'default': { 'ENGINE': 'django.db.backends.sqlite3', # Add 'postgresql_psycopg2', 'postgresql', 'mysql', 'sqlite3' or 'oracle'. 'NAME': 'mysite.sqlite', # Or path to database file if using sqlite3. 'USER': '', # Not used with sqlite3. 'PASSWORD': '', # Not used with sqlite3. 'HOST': '', # Set to empty string for localhost. Not used with sqlite3. 'PORT': '', # Set to empty string for default. Not used with sqlite3. } } 按照以上配就行,当然mysite.sqlite需要改成自己的数据库名称。 然后,创建应用,以blog为例,进到你的网站目录,执行如下命令: python manage.py startapp app_name 配置该应用下的models.py文件,举例: from django.db import models class Category(models.Model): name=models.CharField(max_length=32) def __str__(self): return self.name class Admin: pass class Article(models.Model): title=models.CharField(max_length=64) published_at=models.DateTimeField('date published') content=models.TextField() category=models.ForeignKey(Category) def __str__(self): return self.title class Admin: pass 作如下配置,保存后执行如下命令: python manage.py sql app_name 发现其实是对数据库执行了以下命令: BEGIN; CREATE TABLE "blog_category" ( "id" integer NOT NULL PRIMARY KEY, "name" varchar(32) NOT NULL ) ; CREATE TABLE "blog_article" ( "id" integer NOT NULL PRIMARY KEY, "title" varchar(64) NOT NULL, "published_at" datetime NOT NULL, "content" text NOT NULL, "category_id" integer NOT NULL REFERENCES "blog_category" ("id") ) ; COMMIT; 然后执行python manage.py syncdb语句创建数据库 那么,如何完成数据库的存取、删除、检索等操作呢? 插入,用以上创建的category类表为例: from mysite.blog import category p1=category(name='mengl') p1.save() 这样就行了,即完成了一条记录的插入工作 接下来再调用 p1.save() 将不会创建新的记录,而只是修改记录内容(也就是 执行 UPDATE SQL语句,而不是 INSERT 语句) 以下是查询: category.objects.all()是查找该表所有字段 如果想要获得数据的一个子集,我们可以使用 filter() 方法: 例如:category.objects.filter(name='mengl'),filter可以同时接受多个参数,我们常用它缩小检索范围,当表内并不知一个字段属性时,例如当班级成绩表不仅有姓名、学号、性别、还有成绩、名次时,我们可以这样用,不同参数间用英文逗号隔开 从模型里删除一个字段可要比增加它简单多了。删除一个字段仅需要做如下操作: 从你的模型里删除这个字段,并重启Web服务器。 使用如下面所示的命令,从你的数据库中删掉该列: ALTER TABLE books_book DROP COLUMN num; 删除 Many-to-Many 字段 因为many-to-many字段同普通字段有些不同,它的删除过程也不一样: 删除掉你的模型里的 ManyToManyField ,并且重启Web服务器。 使用如下面所示的命令,删除掉你数据库里的many-to-many表:2 DROP TABLE articles; 删除模型 完全删除一个模型就像删除一个字段一样简单。删除模型仅需要做如下步骤: 将此模型从你的 models.py 文件里删除,并且重启Web服务器。 使用如下的命令,将此表从你的数据库中删除: DROP TABLE article;
阅读(3146) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~