SQLite
python中自带有sqlite3模块,import sqlite3 就可以使用sqlite3模块中的函数与数据库建立连接
2.validate
python manage.py validate 检查模型的可行性,语法是否有错误
3.python manage.py sqlall appName
根据modes.py生成相应的sql语句,不会在数据库中创建表
4.syncdb命令
python manage.py syncdb 同步模型到数据库,但是它不能将模型的修改和删除同步到数据库
5.python manage.py dbshell
打开settings.py中配置的数据库
你需要安装sqlite数据库才能用这个命令打开数据库
6.save()
可以将对象写入数据库
7.objects
objects是模型的管理器,可以使用它的create,delete,filter,all,order_by,get等方法.get方法返回一个单个的对象
8.__unicode__()
在模型中定义__unicode__()方法
def __unicode__(self):
return self.name #返回一个Unicode对象
9.__contains
<span style="font-size:18px;">Publisher.objects.filter(tilte__contains='maths')</span>
在查询字段title之后添加__contains相当于sql语句中的like10.order_by()
<span style="font-size:18px;">Publisher.objects.order_by('name')
#多个排序字段
Publisher.objects.order_by('name','address')
#逆序排列
Publisher.objects.order_by('-name')</span>
模型缺省的排序方式:
在modes.py的每个模型中加入:
class Meta:
ordering = ['name']
11.连锁查询
<span style="font-size:18px;">Publisher.objects.filter(name='Apress').order_by('adress')</span>
12.限制返回数据
<span style="font-size:18px;">Publisher.objects.order_by('name')[0:10]#限制返回对象的个数</span>
python不支持负索引:<span style="font-size:18px;">Publisher.objects.order_by('name')[-1]
</span>
13.更改某一列的值
<span style="font-size:18px;">Publisher.objects.get(name='Apress').update(name="Bob")</span>
save()方法会更新这一行中所有列的值
可以一次更新多条记录:
<span style="font-size:18px;">Publisher.Objects.all().update('adress'='Parise')</span>
14.删除对象
<span style="font-size:18px;">p = Publisher.objects.get(name='Apress')
p.delete()</span>
删除所有的数据:<span style="font-size:18px;">Publisher.objects.all().delete()</span>
删除部分数据:<span style="font-size:18px;">Publisher.objects.filter('adreess'='Parise').delete()</span>