django中的orm(models)

参考:http://djangobook.py3k.cn/2.0/

一、ORM:单表操作

映射关系:
           python的类名对应的SQL语句的表名
           python的类属性对应的SQL语句的表名下的字段
           python的类属性的约束对应的SQL语句的表名下的字段类型
		   
		   类的实例对象---------------表中的一条记录对象
		   
		   
第一步:创建表	
class Student(models.Model):
		nid=models.AutoField(primary_key=True)         #  主键约束
		name=models.CharField(max_length=32)           #  字符串字段
		birth=models.DateField()                       #  日期类型
		class_id=models.IntegerField(default=0)
第二步:单表操作:
          
		查询记录API:
       (1)Student.objects.all()    #返回的QuerySet类型 查询所有记录    [obj1,obj2....] 
	   
       (2)Student.objects.filter() #返回的QuerySet类型 查询所有符合条件的记录  
       (3)Student.objects.exclude()#返回的QuerySet类型 查询所有不符合条件的记录  
       (4)Student.objects.get()    #返回的models对象   查询结果必须有且只有一个,否则报错  
       (5)Student.objects.all().first()      #返回的models对象   查询结果集合中的第一个 
       (6)Student.objects.filter().last()    #返回的models对象   查询结果集合中的最后一个  
       (7)Student.objects.all().values("name","class_id")  #返回的QuerySet类型  ,列表中存放的字典 
       (8)Student.objects.all().values_list("name","class_id")  #返回的QuerySet类型  ,列表中存放的元组 
       (9)Student.objects.all().order_by("class_id")   # 按指定字段排序,不指定,按主键排序
       (10)Student.objects.all().count()  # 返回的记录个数
       (11)Student.objects.all().values("name").distinct()
       (12)Student.objects.all().exist()
			   
		单表查询之双下划线 __
               	Student.objects.filter()	
                models.Tb1.objects.filter(id__lt=10, id__gt=1)   # 获取id大于1 且 小于10的值

				models.Tb1.objects.filter(id__in=[11, 22, 33])   # 获取id等于11、22、33的数据
				models.Tb1.objects.exclude(id__in=[11, 22, 33])  # not in
				 
				models.Tb1.objects.filter(name__contains="ven")
				models.Tb1.objects.filter(name__icontains="ven") # icontains大小写不敏感
				 
				models.Tb1.objects.filter(id__range=[1, 2])      # 范围bettwen and
				 
				startswith,istartswith, endswith, iendswith 					
            

        添加记录:
		       方式1:
		       s=Student(name='',birth='',class_id='')
			   s.save()
			   方式2:
			   stu_obj=Student.objects.create(name='',birth='',class_id='') # stu_obj是添加的记录对象
               			
        删除记录:
		        Student.objects.filter(nid=1).delete()  #  QuerySet类型调用
				

        修改记录:
		         Student.objects.filter(nid=1).update(name="yuan")
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值