11)django-ORM(操作增删改查)

ORM从增删改查等方面说明

 

一:创建数据

  

    #创建数据两种方式1,推荐方式1
    UserInfo.objects.create(username="root",password="123")    
    
    #方式1变种
    
    user_dict={"username":"root","password":"123"}
    UserInfo.objects.create(**user_dict)
    
    #方式2
    obj=UserInfo(username="root2",password="123")
    obj.save()

二:查询数据

    result=UserInfo.objects.all()#返回的是QuerySet类型,其实就是个UserInfo对象列表
    for row in result:
        print(row.username,row.password)
    result1=UserInfo.objects.filter(username="root")

 

三:删除数据

  

UserInfo.objects.filter(username="root").delete()

 

四:更新数据

UserInfo.objects.filter(username="root").update(username="roo2")

 五:元数据

    class User(models.Model):
        name=models.CharField(max_length,index=True)
        email=model.CharField(max_length,index=True)
        class meta:
            db_table="table_name"#数据库中生成的表名称 默认 app名称 + 下划线 + 类名
            

            #联合索引
            index_together=[
                ("name","email"),
                #联合索引支持最左前缀模式(上面单独索引可以不用建立,但是要考虑使用场景。因为单独最后一个字段查询是不能命中)
                #select * from where name="xx" 可以命中索引
                #select * from where name="xx" and emial="XX"可以命中索引
                #select * from where emial="XX" 不能命中索引
                #所以这是有代价,最后一个不能命中索引
            ]
            #联合唯一索引,和联合索引又加了限制唯一
            unique_together=[()]

            #admin中显示表的名称
            verbose_name

            #verbose_name加s
            verbose_name_plural

            verbose_name_plural="上课记录" django-admin中显示的是:上课记录s

 

posted on 2017-11-01 10:36  shisanjun  阅读(249)  评论(0编辑  收藏  举报

导航