在此之前,学习了什么
将要学习
一个框架的诞生,Django的MTV模式
- Model代表模型,即数据存取层.该层处理与数据相关的所有事务:如何存取、如何验证有效性、包含哪些行为以及数据之间的关系等
- Template代表模板,即表现层.该层处理与表现相关的决定:如何在页面或其他类型文档中进行显示
- Views代表视图,即业务逻辑层.该层包含存取模型及调取恰当模块的相关逻辑.是模型与模板之间的桥梁
Django对MVC的解释,VT共同组成V,M是M,C由urls模块负责
正式开始
Django 模型对数据库进行的操作 : 增、删、改、查(排序、限制)
创建一个数据库
create database books;
创建表
- 打开模型模块 : models.py
- 创建类 : Book
class Book(models.Model): title = models.CharField(max_length = 100) authors = models.ManyToManyField(Author) publisher = models.ForeignKey(Publisher) publication_date = models.DateField() def __unicode__(self): return self.title
python manage.py validate
python manage.py sqlall books
python manage.py syncdb
添加记录
-) 普通
b = Book(title = 'times', authors = 'mirlee', publisher = p, publisher_date = now, )b.save()
-) 一步到位
b = Book.objects.create(....)
删除
Book.objects.get(title='more').delete()
更改记录
-) 全部更新
b.title = 'more'b.save()
-) 仅更改部分
Book.objects.filter(id=52).update(title='this')
查询
-) 整个表(获取对象集)
Book.objects.all()
-) 在整个表中按条件查询(数据过滤)
Book.objects.filter(title='times')
-) 一条记录(获取单个对象)
Book.object.get(title='times')
排序
-) 顺序
Book.objects.order_by('title')
-) 逆序
Book.objects.order_by('-title')
-) 定义缺省排序
class Book(models.Model): title = models.CharField(max_length = 100) authors = models.ManyToManyField(Author) publisher = models.ForeignKey(Publisher) publication_date = models.DateField() def __unicode__(self): return self.title class Meta: ordering = ['name']
查询+排序
Book.objects.filter(title='times').order_by('-Auther')
限制返回的数据
Book.objects.order_by('title')[0]
或:
Book.objects.order_by('title')[0:10]