zoukankan      html  css  js  c++  java
  • Django Model one

    models :URL---->http://www.cnblogs.com/wupeiqi/p/6216618.html

    null                     数据库中字段是否可以为空

    do_column                数据库中字段的列名

    default                  数据库中字段的默认值

    primary_key              数据库中字段是否为主键

    db_index                 数据库中字段是否可以建立索引

    unique                   数据库中字段是否可以建立唯一索引

    unique_for_data          数据库中字段【日期】部分是否可以建立唯一索引

    unique_for_month         数据库中字段【月】部分是否可以建立唯一索引

    unique_for_year          数据库中字段【年】部分是否可以建立唯一索引

    verbose_name              Admin中显示的字段名称

    blank                     Admin中是否允许用户输入为空

    editable                  Admin中是否可以编辑

    help_test                 Admin中该字段的提示信息

    choices                   Admin中选择框的内容,用不变动的数据放在内存中从而避免跨表操作

                              如:gf = models.IntegerField(choices=[(0, '何穗'),(1, '大表姐'),],default=1)

    error_messages            自定义错误信息{字典类型},定制想要显示的错误信息

                              字典键:null, blank, invalid, invalid_choice, unique, and unique_for_data

                               {'null':"不能为空",'invalid':"格式错误"}

                                                        

    #自定义自增列

    nid = models.AutoFieid(primary_key=True)

    #元信息

    class UserInfo(models.Model):

            nid = models.AutoFieid(primary_key=True)

            username = models.Charfiled(max_length=32)

            class Meta:

                db_table = "table_name"  #数据库中生成的表名称,默认:app名称+下划线+类名

                index_together = {("pub_date","deadline"),} #联合索引

                unique_together = (("pub_date","deadline"),) #联合唯一索引

                vernose_name = "用户名"  #Admin 中显示的表名称

    #一对多的操作:

    to,                     要进行关联的表名

    to_field=None,          要关联的字段名称,默认是主键ID

    on_delete=None          当删除关联表中的数据时

        models.CASCADE,删除关联的数据,与之关联的也删除

        models.DO_NOTHING,引发错误 integrityError

        models.PROTECT,引发错误ProtectedError

        models.SET_NULL,删除关联的数据,与之关联的值设置为null(前提FK字段需要被设置允许为null)

        models.SET_DEFAULT,删除关联的数据,与之关联的值设置为默认值(前提FK字段需要设置默认值default)

        related_name = None, 反向操作时,使用的字段名,用于代替【表名_set】

        related_query_name = None,反向操作时,使用的字段名,用于代替【表名】

        limt_choice_to = None,在Admin或ModelForm 中显示关联书籍是们提供的条件

        db_constraint=True 知否在数据库中创建外键约束

        patent_link=False  在Adimn中是否显示关联数据

       

    ORM:

        create(),可以接受字典类型数据 **kwargs

        delete()

        get(),获取单条数据,不存在则报错(不建议)

        all(),获取全部数据

        filter(),获取指定条件的数据

        exclude(),获取除条件之外的数据

        update()将指定条件的数据更新,支持字典类型 **kwargs

       

        count()获取匹配中的个数

        id__gt=1 获取ID 大于1的值

        id__gte=1获取ID 大于等于1的值

        (id__lt=10,id__gt=1),获取ID大于1小于10的值

        id_in[11,22,33,] 获取ID 等于11,22,33,的值

        pub_date__isnull = True

        (name__contains="ale") ,模糊匹配

        (name__icontains="Ale"),大小写不敏感

        (id__range=[1,2]) #范围 between ,end

        (name='seven').order_by('id')     #asc

        (name='seven').order_by('-id')    #desc

       

        group by

        from django.db.models import Count, Min, Max, Sum

        values('id').annotate(c=Count(num))

        models.Tb1.objects.all()[10:20] 切片

        Entry.objects.get(title__regex=r'^(An?|The) +')

        Entry.objects.get(title__iregex=r'^(an?|the) +')

        date

        Entry.objects.filter(pub_date__date=datetime.date(2005, 1, 1))

        Entry.objects.filter(pub_date__date__gt=datetime.date(2005, 1, 1))

        year

        Entry.objects.filter(pub_date__year=2005)

        Entry.objects.filter(pub_date__month__gte=6)

        select_related(self,*fields)   #性能相关:表之间进行join链表操作,一次性获取关联的数据

        prefetch_related(self,*lookups) #性能相关:多表连表操作时速度会慢,使用其执行多次SQL查询在Python代码中实现连表操作

        aggregate() 聚合函数,获取字典类型聚合结果

        bulk_create() 批量插入

        get_field_dispay: 返回choice字段可读的值  (1,'成功')  ——return '成功'

        get_or_create(self,default) #如果存在,则获取,否则创建   !!!!

        update_or_create(self,default) #如果存在,则更新,否则创建 !!!!

        first(self)获取第一个

        lase(self)获取最后一个

        in_bulk(self,id_list=None):

        id_list = [11,22,33]

        exists(self)

       

  • 相关阅读:
    CMS .NET 程序框架 从2.0/3.5升级到4.0 版本后 需要调整的地方
    配置信息
    修改SQL Server 2005 数据库文件名字
    生成一行html
    安卓模拟器研究-root
    Win8.1屏幕亮度自动调节关闭方法
    ORA-01012:not logged on的解决办法
    ORA-00845: MEMORY_TARGET not supported on this system
    Linux vmstat命令实战详解
    Linux操作系统下Oracle主要监控工具介绍
  • 原文地址:https://www.cnblogs.com/mihon/p/8980883.html
Copyright © 2011-2022 走看看