django models 增删改查

python manage.py shell

from mysite import models  
dir(models)  
#Host中所有的值
models.Host.objects.all()  
#系统类型为linux
models.Host.objects.filter(system_type='linux')  
#系统类型为linux且主机名为lmz,列表的第0个值
models.Host.objects.filter(system_type='linux',hostname='lmz')[0]  
#系统类型为linux且主机名包含lmz
models.Host.objects.filter(system_type='linux',hostname__contains='lmz')  
#只查找一个唯一的值
models.Host.objects.get(system_type='linux',hostname__contains='lmz')  
#查找主机id大于1的值
models.Host.objects.filter(id__gt=1)  
#查找主机id小于1的值
models.Host.objects.filter(id__lt=1)  
#查找id在1,2,3的值
models.Host.objects.filter(id__in=[1,2,3])  

#创建一个主机
models.Host.objects.create(  
... hostname='leo-pc',
... ip_addr='192.168.199.168',
... port=3389,
... system_type='linux',
... idc_id = 1,
... create_date = datetime.datetime.now())
#主机变量
h = models.Host.objects.get(hostname='leo-pc')  
#主机添加到两个主机组
h.groups.add(1,2)  
h.groups.remove(1,2)  
all_groups = models.HostGroup.objects.all()  
h.groups.remove(*[i.id for i in all_groups])  
#返回object实例
h.save()  

#把hostname 改为 limengbo-pc
h = models.Host.objects.get(id=4)  
h.hostname = "limengbo-pc"  
h.save()  
#把所有主机的端口改为2002
models.Host.objects.filter().update(port='2002',system="linux")  

#删除ID为4的主机
h = models.Host.objects.get(id=4)  
h.delete()  

#多表查询
a = models.UserProfile.objects.last()  
a.hosts.select_related()  
a.host_groups.select_related()